使用@ViewScoped bean和s:viewAction的primefaces fileUpload

时间:2012-08-24 16:13:38

标签: primefaces seam3 view-scope

我正在使用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>

但它不起作用。你知道任何解决方法吗?一种选择是使用@ConversationScoped,但我更喜欢使用@ViewScoped

感谢

0 个答案:

没有答案