Jsf 若转到页面时并没有重定向,那个么视图作用域bean将在一个页面上实例化两次
我有一个使用@ViewScoped bean的页面。在第页,我从bean中获取数据,并对其调用操作。大概是这样的:Jsf 若转到页面时并没有重定向,那个么视图作用域bean将在一个页面上实例化两次,jsf,navigation,scope,Jsf,Navigation,Scope,我有一个使用@ViewScoped bean的页面。在第页,我从bean中获取数据,并对其调用操作。大概是这样的: <h:form> <h:dataTable value="#{partyBean.foundOrganisations}" var="party"> <h:column headerClass="header"> <f:facet name="header"> #{msgs['company.r
<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是@ViewScope。当我使用导航规则访问此页面时,一切正常,但如果没有,则会从bean的一个实例获取FoundOrganizations,但单击链接时会在另一个bean实例上调用setSelectedParty。通过调试进行检查
为什么呢?我能做点什么让它在没有它的情况下工作吗?我认为这很正常。partyBean正在更新新的视图。 对于提交到同一页面,您可以使用command按钮更改commandLink,并在action方法中返回null。通过这种方式,JSF的行为类似于相同的视图
或者您可以尝试将selectedparty值保留在一个未在JSF2.0中测试的hiddenField中,我认为这是完全正常的。partyBean正在更新新的视图。 对于提交到同一页面,您可以使用command按钮更改commandLink,并在action方法中返回null。通过这种方式,JSF的行为类似于相同的视图 或者,您可以尝试在JSF 2.0中未测试的hiddenField中保留selectedparty值