日期:2014-05-16  浏览次数:20380 次

JSF文件上传

JSF2.0虽然添加了很多新特性,但是还是没有官方的对上传的支持。直接使用

<h:form enctype="multipart/form-data" >

</h:form>

是不行的。因为multipart/form-data类型的request是解析不了的。

解决方法可以使用filter对request进行包装(原request似乎是不能更改的,所以借助包装),在解析request是可以借助apache的commons-fileupload组件。

Myfaces刚好给出了这个解决方案的实现:

MultipartFilter+MultipartRequestWrapper(Use commons-fileupload).

?

原来是打包在一个myfaces-extensions.jar中,现在找不到官方的下载,不过在Tomahawk包里可以找到(org.apache.myfaces.webapp.filter.*,MultipartFilter似乎都弄到ExtensionsFilter里了)。

?

个人觉得旧版的源代码挺参考价值的,贴出来分享下。

?MultipartRequestWrapper:

?

view plain
  1. 1?/*?
  2. 2??*?Copyright?2004?The?Apache?Software?Foundation.?
  3. 3??*??
  4. 4??*?Licensed?under?the?Apache?License,?Version?2.0?(the?"License");?