2012-12-22 124 views
0

這裏我的想法與oneRadioJSF selectOneRadio/commandLink

<h:selectOneRadio value="#{controller.myboolean}"> 
    <f:selectItem itemValue="#{true}" itemLabel="Yes"/> 
    <f:selectItem itemValue="#{false}" itemLabel="No"/> 
</h:selectOneRadio> 

這裏有commandLink:

<h:commandLink value="YES" action="#{controller.setMyboolean(true)}"/> 
<br/> 
<h:commandLink value="NO" action="#{controller.setMyboolean(false)}"/> 

在我的應用程序要顯示或<h:selectOneRadio>禁用我的表。例如,如果我選擇了第一個radioButton,則會顯示錶格。我不要點擊<h:commandButton>來更改值myboolean。因此,我的應用程序的例外反應必須像<h:commandLink>。我點擊它,數值發生變化,表格顯示出來。但在我的情況下,我想使用<h:selectOneRadio>

+0

所以呢?什麼是問題? –

+0

我的問題是myboolean的值沒有改變sif我點擊了其中一個單選按鈕...... – JavaNullPointer

+2

這是真的代碼還是你試圖不經意地從頭頂寫入而沒有實際測試過它? 'setmyboolean'不是一個有效的setter方法名,'{true}'和'{false}'值不是有效的EL。在將來的問題中,請發佈**真實**代碼。 – BalusC

回答

0

除非你在後臺設置它,否則問題很可能是你需要實現一個轉換器來處理字符串「true」和「false」之間的轉換,到boolean。在您的commandLink中,EL中指定的操作將布爾函數傳遞給您的函數。但是,在selectOneRadio示例中,您正在提交一個字符串。

欲瞭解更多信息,看一看:http://download.oracle.com/otn_hosted_doc/jdeveloper/j2ee101302/jsf_apps/eventvalidate/sf_avc_converters.html

+0

不想使用字符串...手錶編輯...那不是問題。我的命令鏈接的功能是默認的構造函數 – JavaNullPointer

+1

我可能仍然不明白你想要做什麼,但從我可以看到它可能是因爲表單沒有被提交。點擊'commandLink'將提交值,而選擇單選按鈕只會導致在提交表單時設置值。看起來你需要添加一個onChange事件偵聽器來提交該字段,或者有一個提交表單的'commandButton'。 – jcern

+0

是的,一個onChange事件監聽器可能是一個解決方案! – JavaNullPointer

-1

這個工程相當不錯:

<h:selectOneRadio value="#{controller.myboolean}" valueChangeListener="#{controller.save}" immediate="true" onchange="this.form.submit()"> 
    <f:selectItem itemValue="#{true}" itemLabel="Yes"/> 
    <f:selectItem itemValue="#{false}" itemLabel="No"/> 
</h:selectOneRadio> 

以及與此的ChangeEvent()的方法:

public void speichereRadioButtons(ValueChangeEvent vce){ 
    boolean temp=(Boolean) vce.getNewValue(); 
    setmyBoolean(temp); 
    FacesContext.getCurrentInstance().renderResponse(); 
} 
+2

它看起來你不是很瞭解網絡編程,而不是JSF 2''。檢查一些頁面,如[JSF wiki頁面](http://stackoverflow.com/tags/jsf/info)中提到的頁面將會很好。這*可以做你需要的東西,但它是你在真實世界網絡應用中不必做的事情的一個很好的例子。 –

1

我會建議你使用primefaces擴展。這是一些布爾值一些不錯的組件...喜歡: http://fractalsoft.net/primeext-showcase-mojarra/views/triStateCheckbox.jsf

你也可以使用primefaces' booleanButton,如: http://www.primefaces.org/showcase/ui/selectBooleanButton.jsf

不管怎麼說, 我希望這可以幫助你,如果你可以靈活並使用另一個組件 diferent然後selectOneRadio ...而如果你還擁有自由 添加更多的依賴關係到項目..

再見