Arc*_*hra 6 jsf file-upload tomahawk
我正在使用<t:inputFileUpload />
JSF1.1控制Tomahawk库.相应地设置我的扩展名过滤器和表单,以允许上载最大3 MB的文件.但问题是如果一个文件超过3 MB,表单不会被提交,但会再次显示,我无法<h:message>
为它设置任何内容.
那么如何告诉用户文件上传失败.
我试过保持,<h:messages globalOnly="true"
但没有显示任何东西.
我按照BalusC博客文章设置了我的上传内容.
异常详细信息可通过以下方式在EL中找到:
#{requestScope['org.apache.myfaces.custom.fileupload.exception']}
Run Code Online (Sandbox Code Playgroud)
因此,将以下组件添加到页面即可
<h:outputText value="File upload failed! #{requestScope['org.apache.myfaces.custom.fileupload.exception']}"
styleClass="error" rendered="#{not empty requestScope['org.apache.myfaces.custom.fileupload.exception']}" />
Run Code Online (Sandbox Code Playgroud)
您最终可以创建一个PhaseListener
将其变成的FacesMessage
。请采用以下beforePhase()
的PhaseId.RENDER_RESPONSE
Object fileuploadException = requestMap.get("org.apache.myfaces.custom.fileupload.exception");
if (fileuploadException != null) {
facesContext.addMessage(null, new FacesMessage("File upload failed! " + fileuploadException));
}
Run Code Online (Sandbox Code Playgroud)