我正在尝试更新一个无线电组件,它由一个选择框的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>
我在这里缺少什么?
强尼
答案 0 :(得分:3)
删除onchange="this.form.submit()"
(f:ajax
会将值提交给服务器)
同时删除immediate="true"
(我认为您不打算在此处跳过任何验证)
最后,将<p:ajax update="radioId"/>
更改为<f:ajax render="radioId"/>
p:ajax
来自primefaces,你使用普通的JSF组件
正如 BalusC 所建议的那样:您最好通过向valueChangeListener="#{someBean.someChange}"
添加listener="#{someBean.someChange}"
来替换f:ajax
(您也应该更改方法的签名)