0

5列のデータテーブルがあります。最初の列には次が含まれます。

<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.cmdSeleziona_Ordine は新しいページにリダイレクトします。

コマンドリンクをクリックするたびに、Bean_OrdiniLavoro が再作成されます。これが問題です。

<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 で十分だという多くの投稿を読みましたが、この場合は機能しません。

代わりに a を使用すると機能します。

どうもありがとう。ダビデ

4

1 に答える 1

0

p:commandButtonのactionプロパティを使用する場合、戻り値はナビゲートする場所です。null 以外の値を返す場合、現在のビューは終了し、新しいビューが優先されます。

同じビューに留まりたい場合は、null値またはvoidを返す必要があります。

public String cmdSeleziona_Ordine()
{
    return null;
}

また

public void cmdSeleziona_Ordine()
{

}
于 2013-05-21T09:13:38.643 に答える