上周在Sun论坛上,有人发布了一个自定义JSF 2.0文件上传组件的示例,但它是在Apache Commons FileUpload API上构建的,代码在这里有几个缺陷,但它可能是足够的信息开始.但要小心,其中一些缺陷是严重的:JavaServer Faces - 创建JSF 2.0文件上载组件
巧合的是,我最近还在围绕JSF 2.0文件上传组件的想法,结合我的博客上新文章的新Servlet 3.0多部分支持.很难想象创建JSF 2.0自定义组件的最佳方式是什么(a @FacesComponent
),Google稍微透露一下,只有Jim Driscoll的这篇博客有点用处.此外,它在Java EE 6教程中没有解释,甚至JSF 2.0规范也没有说明它.
更新:我得到了它的工作,但有一个主要的缺点:我不能使用Servlet 3.0 @MultipartConfig
注释来指定上传位置和最大文件大小.仅当设置在a Servlet
而不是a 上时才会激活此功能Filter
.由于FacesServlet
声明final
并且JSF Servlet
在FacesServlet
启动之前没有提供让另一个处理请求的工具,我没有看到任何干净的方法来使用注释.通常,将在注释中配置上载位置,但通过使用Part#getInputStream()
而不是,这很容易解决Part#write()
.如果没有注释,最大文件大小将无法配置,因此您必须使用"无限大小上传"以及您只能在上传完成时进行验证(另一方面可能是优势) ,因为最终用户否则将面临丑陋的HTTP 500错误).
更新2:这里是博客:http://balusc.blogspot.com/2009/12/uploading-files-with-jsf-20-and-servlet.html希望这有帮助:)
归档时间: |
|
查看次数: |
8299 次 |
最近记录: |