我正在使用RichFaces 3.3和Seam 2来开发Web应用程序。
我有一个包含以下内容的页面:
<h:form>
<s:div id="myPanel">
<h:messages/>
<rich:fileUpload fileUploadListener="#{service.uploadEvent}" maxFilesQuantity="1">
<a:support event="onuploadcomplete" reRender="myPanel"/>
</rich:fileUpload>
</s:div>
</h:form>
在service.uploadEvent
方法中,我收到该文件并添加一个FacesMessage,让用户知道成功上传的文件。
实际发生的是:
service.fileUpload()
。此方法将FacesMessage
添加到Conversation-scoped FacesMessages
seam组件。FacesMessage
。FacesMessages
<h:messages/>
)并杀死会话#3 我可以通过多种方式解决这个问题:
service.fileUpload()
中的长时间运行,并在执行fileUploadComplete()
时结束。正确的方法是在与service.fileUpload()
相同的对话中重新调整页面。这可能吗?
答案 0 :(得分:0)
这只能通过使用自定义StatusMessages组件并将其范围限定在Rerender上仍然可用的上下文(例如PAGE或长跑CONVERSATION)来解决。
答案 1 :(得分:0)
您是否尝试将<h:messages />
替换为<rich:messages />
?当AJAX操作创建新的FacesMessages时,它很有效。见http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_messages.html