我正在使用 hx:fileupload 组件,该组件允许用户打开本地文件系统并浏览到该文件。在同一个应用程序中,我使用 tomahawk tree2 组件来显示分层目录结构。
在添加tree2组件之前,fileupload工作正常但是当我在 web.xml 文件中添加了与tomahawk tree2相对应的过滤器标记时, getFileupload1()。getFilename() hx的文件 :fileupload组件(其中getFileupload1()是hx:fileupload组件的getter方法)返回null异常。
过滤代码:
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
如果我从web.xml文件中删除过滤器标记, fileupload 组件将恢复正常工作,但 Tree2 组件将无效。< / p>
请帮助使两个组件在应用程序中协同工作。
谢谢
我做了以下更新:
更新了web.xml代码
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>pagecode.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
请帮忙。感谢。
答案 0 :(得分:1)
ExtensionsFilter
也会自动解析multipart/form-data
次请求,作为其战斗工作<t:inputFileUpload>
的一部分。配置无法禁用此功能。
你基本上有两个选择:
在同一许可下复制ExtensionsFilter
if (ServletFileUpload.isMultipartContent(httpRequest)) {}
并删除整个multipart/form-data
块(第347-350行),以便它不会解析<hx:fileUpload>
请求再次使用此过滤器。
将<t:inputFileUpload>
替换为{{1}}。