我想在JSF 1.1项目中上传文件。JSF 1.1不支持RichFaces文件上传。我看了看战斧,但我不知道怎么用战斧。有人能给我解释一下吗?
- 我必须使用哪些jar ?
- 标记库?
- 和
web.xml
配置? - 和
faces-config.xml
配置?
或者有战斧的替代品吗?
我必须使用哪些jar ?
- tomahawk
- commons-fileupload
- commons-io
- 通用日志
- commons-el
我假设您已经有了JSF 1.1 jar jsf-api
和jsf-impl
。
标记库?
只有战斧式的那个,在两个通常的核心/html标签旁边:
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
web.xml配置?
你需要ExtensionsFilter
。这个过滤器将确保JSF从multipart/form-data
请求体中获得正确的参数。
<filter>
<filter-name>Extensions Filter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Extensions Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
faces-config.xml配置?
没什么特别的。只需用UploadedFile
属性创建一个托管bean,并将其绑定到<t:inputFileUpload>
的value
属性。
参见:
- 如何在JSF中上传文件?(是的,它是针对JSF 1.2的,但在JSF 1.1中应该同样有效)。