2013-05-21 2 views
0

5 개의 열이있는 데이터 테이블이 있습니다. 첫 번째 열에는 다음 내용이 포함됩니다.Primefaces Datatable은 viewScoped 빈을 다시 생성합니다.

<p:column headerText="Ordine" filterBy="#{item.numeroOrdineLavoro}" 
      sortBy="#{item.numeroOrdineLavoro}"> 

    <p:commandLink value="#{item.numeroOrdineLavoro}" 
        process="@this" 
        action="#{Bean_OrdiniLavoro.cmdSeleziona_Ordine}"> 

     <f:setPropertyActionListener target="#{Bean_OrdiniLavoro.sel_OrdineLavoro}" 
            value="#{item}" /> 
    </p:commandLink> 
</p:column> 

Bean_OrdiniLavoro는 ViewScoped입니다. Bean_OrdiniLavoro.cmd 셀레 지아 _ 오기가 새 페이지로 리디렉션됩니다.

커맨드 링크를 클릭 할 때마다 Bean_OrdiniLavoro가 ReCreated입니다. 이게 문제 야.

<context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>server</param-value> 
</context-param> 
<context-param> 
    <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name> 
    <param-value>false</param-value> 
</context-param> 

Primefaces 3.5 및 JSF 2.1.22.

PARTIAL_STATE_SAVING = false이면 충분하다고 말하는 게시물을 많이 읽었습니다. 하지만이 경우에는 작동하지 않습니다.

내가 대신 사용하는 경우 작동합니다.

감사합니다. 다비드

+0

이 함수는 반환 무엇 : Bean_OrdiniLavoro.cmdSeleziona_Ordine를? –

+0

"Page_EditOrdine.xhtml? faces-redirect = true"를 사용하면 Bean을 다시 작성합니다. return = null 및 //FacesContext.getCurrentInstance().getExternalContext().redirect("Page_EditOrdine.xhtml "); 그것은 작동합니다 –

+0

그게 당신의 문제를 해결? –

답변

0

행동 페이지의 사용하여 속성 : 당신이 이동하려는 명령 단추는 반환 값입니다. null이 아닌 값을 반환하면 현재보기가 새보기를 위해 종료됩니다.

같은 모양으로 유지하려면 null 값 또는 공백을 반환해야합니다.

public String cmdSeleziona_Ordine() 
{ 
    return null; 
} 

또는

public void cmdSeleziona_Ordine() 
{ 

} 
+0

예, 확실합니다. 나는 심하게 설명했다. –

+0

다른 페이지로 리디렉션하고 싶습니다. action이 "Page_EditOrdine.xhtml? faces-redirect = true"를 반환하면 viewScoped bean이 재생성됩니다. 테스트만을 위해 null을 반환하고 FacesContext.getCurrentInstance(). getExternalContext(). redirect ("Page_EditOrdi ne.xhtml");을 사용했습니다. 그래서 그것은 작동합니다. 저에게는 이상합니다! –

+0

제가 이해한다면 동일한 빈을 사용하는 두 가지 견해가 있습니까? –

관련 문제