Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 更新值:单选按钮值来回切换_Jsf 2 - Fatal编程技术网

Jsf 2 更新值:单选按钮值来回切换

Jsf 2 更新值:单选按钮值来回切换,jsf-2,Jsf 2,我正在尝试更新一个无线电组件,它是由一个选择框的onchange事件触发的。我看到单选按钮在onchange之后根据需要切换,但它会在下一秒自动切换回来 <h:selectOneMenu id="selectId" value="#{someBean.someSelectValue}" onchange="this.form.submit()" valueChangeListener="#{someBean.someChange}" immediate="true"> <

我正在尝试更新一个无线电组件,它是由一个选择框的onchange事件触发的。我看到单选按钮在onchange之后根据需要切换,但它会在下一秒自动切换回来

<h:selectOneMenu id="selectId" value="#{someBean.someSelectValue}" 
 onchange="this.form.submit()" valueChangeListener="#{someBean.someChange}" immediate="true">
  <p:ajax update="radioId"/>
  <f:selectItems value="#{someBean.availableSraTitel}" />
</h:selectOneMenu>

<h:selectOneRadio id="radioId" value="#{someBean.someRadioValue}">
  <f:selectItem itemLabel="Yes" itemValue="true" />
  <f:selectItem itemLabel="No" itemValue="false" />
</h:selectOneRadio>
我错过了什么

Jonny

Remove onchange=this.form.submit f:ajax将向服务器提交值

另外remove immediate=true我不认为您真的打算跳过这里的任何验证

最后一件事,换成

p:ajax来自primefaces,您使用的是普通JSF组件

正如BalusC所建议的:您最好将listener={someBean.someChange}添加到f:ajax中,以替换valueChangeListener={someBean.someChange},您也应该更改方法的签名

另外remove immediate=true我不认为您真的打算跳过这里的任何验证

最后一件事,换成

p:ajax来自primefaces,您使用的是普通JSF组件


正如BalusC所建议的:您最好通过添加listener={someBean.someChange}来替换valueChangeListener={someBean.someChange}对于您的f:ajax,您也应该更改方法的签名

在使用JSF 2.x开发时,请不要阅读JSF 1.x目标答案/教程/书籍/资源。在使用JSF 2.x开发时,请不要阅读JSF 1.x目标答案/教程/书籍/资源。虽然没有必要,但我还是更愿意将valueChangeListener替换为。您对旧值不感兴趣,并且当您打算更改其他输入的值时,valueChangeListener将位于错误的位置。虽然没有必要,但我还是希望将valueChangeListener替换为。您对旧值不感兴趣,当您打算更改其他输入的值时,valueChangeListener将位于错误的位置。