我有以下代码,根据selectOneMenu组件的选择,它更新pickList中的条目(在后端 loadPickList 中)并更新客户端的选项列表:
<p:selectOneMenu id="someId" value="#{handler.selection}"
required="#{not empty param[save.clientId]}" label="SomeLabel">
<p:ajax event="valueChange" listener="#{handler.loadPickList}"
update="pickList" />
<f:selectItem itemValue="#{null}" itemLabel="SomeLabel" />
<f:selectItems value="#{handler.myList}" var="listEntry"
itemValue="#{listEntry}" itemLabel="SomeLabel" />
</p:selectOneMenu>
<p:pickList id="pickList" value="#{handler.myPickList}"
var="entry" itemLabel="SomeLabel" itemValue="#{entry}"
converter="myConverter">
<f:facet name="sourceCaption">Source</f:facet>
<f:facet name="targetCaption">Target</f:facet>
</p:pickList>
一切都按预期工作。每次在selectOneMenu中进行新选择时,都会更新pickList中的值。
问题是当我通过commandButton提交表单并触发验证时。然后,在从selectOneMenu中选择另一个条目后,我的pickList没有得到更新。
注意:即使在表单的子目录和后端填充了pickList之后,也会调用loadPickList,但是我没有看到pickList的getter被再次调用。
我尝试添加更新=&#34; @ form&#34;在提交按钮,但没有看到任何差异。