我有JSF 1.2。 我有2个SelectOneMenues,都有SelectItem列表映射到租用公司ID。 (值为id,标签为name / code,具体取决于selectOneMenu)。
如果第二个selectOneMenu被更改,第一个获得正确的值,而不是另一个方式。接下来会发生两个selectOneMenus getter的调用,然后是他们的setter,然后又是他们的getter。导致最后的二传手计数。那是错的。为什么两个二传手都被召唤?! 我需要这样的行为:selectOneMenu更改导致另一个更新。
<h:selectOneMenu style="width:100px;"
value="#{idDetControl.companyId}" id="keyType1">
<f:selectItem itemLabel="" itemValue="" />
<f:selectItems value="#{GeneralTables.rentingCompanyNumbers}" />
<a4j:support event="onchange" reRender="keyType2" />
</h:selectOneMenu>
<h:outputText value="#{l.name}"/>
<h:selectOneMenu style="width:100px;"
value="#{idDetControl.companyId}"
id="keyType2" >
<f:selectItem itemLabel="" itemValue="" />
<f:selectItems value="#{GeneralTables.rentingCompanyNames}" />
<a4j:support event="onchange" reRender="keyType1" />
</h:selectOneMenu>
答案 0 :(得分:1)
两个组件都已提交,因为默认情况下会提交和处理整个表单。在a4j上设置ajaxSingle =“true”:支持仅处理该组件。顺便说一句,我看不到富有:使用了组合框。这也应该有所帮助:http://mkblog.exadel.com/2009/07/richfaces-region-partial-jsf-tree-processing/