我有一个RichFaces pickList,用户应该可以从中选择多个项目,它应该直接反映在辅助bean上。现在,我无法在出现验证错误或重新加载页面时重新加载选择。有没有一种简单的方法可以告诉RichFaces我希望每次更改时都更新支持列表?
答案 0 :(得分:2)
您可以附加到onlistchange
事件。
使用a4j:support
:
<rich:pickList ...>
<a4j:support event="onlistchange"/>
</rich:pickList>
或者,在较新的版本中,使用a4j:ajax
:
<rich:pickList ...>
<a4j:ajax event="change" render="result"/>
</rich:pickList>
或使用a4j:jsFunction
:
<rich:pickList onlistchange="listChange();"... />
<a4j:jsFunction name="listChange" />
上述表单中的两种方法都会提交导致提交所选值的表单。如果需要,您还可以为a4j:support
/ a4j:jsFunction
指定其他属性(例如ajaxSingle="true"
a4j:support
仅处理pickList组件(其他输入将不会被验证/更新), action
/ actionListener
在列表更改时执行服务器端逻辑,reRender
等。)
答案 1 :(得分:1)
您是否尝试在ajaxRendered="true"
的面板中声明您的pickList?这应该自动reRender pickList
<a4j:outputPanel ajaxRendered="true">
<rich:pickList...
</a4j:outputPanel>
答案 2 :(得分:-2)
<h:form>
<rich:pickList value="#{pickListBean.result}">
<f:selectItems value="#{capitalsBean.capitalsOptions}"/>
<a4j:support event="onlistchanged" reRender="result"/>
</rich:pickList>
</h:form>