如果转到页面时没有重定向,则视图作用域 Bean 在一个页面上实例化两次



我有一个页面,我在其中使用@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 中测试(

相关内容

  • 没有找到相关文章

最新更新