如何显示超出 Tomahawk FileInput 控件的大小限制

发布于 2024-11-06 08:38:58 字数 477 浏览 5 评论 0 原文

我正在使用带有 JSF1.1 的 Tomahawk 库的 控件。 我的扩展过滤器和表单已相应设置,以允许上传最大大小为 3 MB 的文件。但问题是,如果文件超过 3 MB,则表单不会提交,但会再次显示,并且我无法为其设置任何

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

我尝试保留 但没有显示任何内容。

我已按照 BalusC 博客文章设置我的上传。

I am using <t:inputFileUpload /> control of the Tomahawk library with JSF1.1.
My Extension Filters and form are set accordingly to allow a file of max-size 3 MB to be uploaded. But the problem is if a File is more than 3 MB the form doesnt get submitted but is shown again , and i cant set any <h:message> for it .

So how do i tell the User the file upload has failed.

I have tried keeping <h:messages globalOnly="true" but nothing gets shown.

I have followed BalusC blog post for setting up my uploads.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月亮坠入山谷 2024-11-13 08:38:58

异常详细信息可在 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 ,将其转换为 FacesMessage。在 PhaseId.RENDER_RESPONSEbeforePhase() 中执行以下操作

Object fileuploadException = requestMap.get("org.apache.myfaces.custom.fileupload.exception");
if (fileuploadException != null) {
    facesContext.addMessage(null, new FacesMessage("File upload failed! " + fileuploadException));
}

The exception detail is available in EL by

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

So, adding the following component to the page should do it

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

You could eventually create a PhaseListener which turns it into a FacesMessage. Do the following in beforePhase() of 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));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文