如何显示超出战斧文件输入控件的大小限制



>我正在使用JSF1.1 <t:inputFileUpload />对Tomahawk库的控制。我的扩展过滤器和表单进行了相应设置,以允许上传最大大小为 3 MB 的文件。但问题是,如果文件超过 3 MB,则表单不会提交,但会再次显示,我无法为其设置任何<h:message>

那么我该如何告诉用户文件上传失败了。

我尝试保留<h:messages globalOnly="true"但没有任何显示。

我关注了BalusC博客文章来设置我的上传。

异常详细信息在 EL 中由

#{requestScope['org.apache.myfaces.custom.fileupload.exception']}

因此,将以下组件添加到页面应该可以做到这一点

<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']}" />

您最终可以创建一个PhaseListener,将其变成FacesMessagebeforePhase() 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));
}

相关内容

  • 没有找到相关文章