Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 若转到页面时并没有重定向,那个么视图作用域bean将在一个页面上实例化两次_Jsf_Navigation_Scope - Fatal编程技术网

Jsf 若转到页面时并没有重定向,那个么视图作用域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

我有一个使用@ViewScoped bean的页面。在第页,我从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是@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值