我有一个页面,我在其中使用@ViewScoped豆。在页面上,我从 bean 获取数据,并对其调用操作。像这样:
<h:form>
<h:dataTable value="#{partyBean.foundOrganisations}" var="party">
<h:column headerClass="header">
<f:facet name="header">
#{msgs['company.registration.number']}
</f:facet>
<h:commandLink value="#{party.registrationNumber}" action="#{partyBean.select}">
<f:setPropertyActionListener value="#{party}" target="#{partyBean.selectedParty}" />
</h:commandLink>
</h:column>
</h:dataTable>
</h:form>
partyBean
是@ViewScoped
.当我使用 <redirect />
通过导航规则到达此页面时,一切正常,但是当没有<redirect />
时,foundOrganisations
取自 bean 的一个实例,但单击链接时在另一个 bean 实例上调用setSelectedParty
。通过调试检查。
为什么?我可以做点什么让它在没有<redirect />
的情况下工作吗?
我认为这是完全正常的。 派对豆子更新了新视图。对于提交到同一页面,您可以使用命令按钮更改命令链接并在操作方法中返回 null。通过这种方式,JSF 的行为类似于相同的视图。
或者,您可以尝试将选定方值保留在隐藏字段中(未在 JSF 2.0 中测试(