环境:
Jboss 7.1.1.Final JSF 2.2.6 Seam 2.3.1.Final Richfaces 4.5.10.Final
问题
渲染上的Richfaces 4 extendeddatatable不保存值(下面列出的示例中的资源下拉列表)。
步骤:
我的XHTML结构如下所示:
<a4j:region id="hraregion">
<rich:extendedDataTable id="hraProcessing"
value="#{maActionList}" var="mpa" selectionMode="single">
<h:column width="200px">
<f:facet name="header">
<h:outputText value="Resource" />
</f:facet>
<h:selectOneMenu id="staffResources" value="{mpa.staffResources}" label="Resource"
<s:selectItems value="#{mpa.validStaffResources}" var="sr" label="#{sr.firstName} #{sr.lastName}"/>
<s:convertEntity />
</h:selectOneMenu>
</h:column>
<rich:column width="140px">
<f:facet name="header">
<h:outputText value="Result" />
</f:facet>
<h:selectOneMenu id="results" value="#{mpa.actionResults}">
<a4j:ajax execute="region" listener="#{maintainAssessment.performNextAction(mpa, 'mpa')}" render="hraProcessing, actionMessage" />
<s:selectItems value="#{mpa.validActionResults}" var="ar" label="#{ar.name}" noSelectionLabel="Select One" />
<s:convertEntity />
</h:selectOneMenu>
</rich:column>
</rich:extendedDataTable>
</a4j:region>
注意:
我们正在从Richfaces 3.3迁移到4.5,这个功能在Richfaces 3.3中运行良好但当然整个页面在3.3中刷新而不是Richfaces 4.5中的部分刷新
有人可以指出我在a4j渲染发生后如何保留所选值的正确方向吗?
答案 0 :(得分:0)
我找到了一种方法来通过在资源下拉列表中更改值后立即使用f:ajax更新支持bean来实现此目的。希望这可以帮助那些面临同样问题的人。
<h:selectOneMenu id="staffResources" value="#{mpa.staffResources}"
label="Resource" styleClass="LFloat">
<s:selectItems value="#{mpa.validStaffResources}" var="sr"
label="#{sr.firstName} #{sr.lastName}"/>
<s:convertEntity />
<f:ajax event="valueChange" execute="@this" render="@none"/>
</h:selectOneMenu>