0

JBoss 7.1.1.Final、Seam 3.1、CDI、JSF 2、Primefaces 3.4RC1 を使用しています。次の s:viewAction を持つページがあります。

<f:metadata>
            <f:viewParam name="entryId" value="#{selectedEntry}" />
            <s:viewAction
                action="#{entryActionManager.selectEntryById(selectedEntry)}" />
</f:metadata>

entryActionManager は @ViewScoped であるため、ページが読み込まれると、entryId GET パラメータが取得され、対応するエントリがこの @ViewScoped Bean に読み込まれます。

さらに、同じページに次の fileUpload コンポーネントがあります。

<h:form id="uploadForm" enctype="multipart/form-data">
            <p:fileUpload update=":files:filesTable"
                fileUploadListener="#{bean.uploadFile}" 
                mode="advanced" sizeLimit="2000000" >
            </p:fileUpload>         
    </h:form>

ファイルをアップロードしたい場合、@ViewScoped Bean が停止し、s:viewAction が再度実行されることがわかりました。ただし、何らかの理由で GET パラメーター (entryId) がなくなったため、失敗します。

私は設定しようとしました:

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

しかし、うまくいきません。これに対する回避策を知っていますか?1 つのオプションは @ConversationScoped を使用することですが、@ViewScoped を使用することをお勧めします

ありがとう

4

0 に答える 0