Я использую компонент hx:fileupload, который позволяет пользователю открывать локальную файловую систему и переходить к файлу. В том же приложении я использовал компонент tomahawk tree2 для отображения иерархической структуры каталогов.
Раньше для добавления компонента tree2 загрузка файла работала отлично, но когда я добавил тег фильтра, соответствующий tomahawk tree2, в файл web.xml, getFileupload1().getFilename() метод компонента hx:fileupload (где getFileupload1() — метод получения компонента hx:fileupload) возвращает нулевое исключение.
Код тега фильтра:
<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 не будет работать.
Помогите, пожалуйста, заставить оба компонента работать вместе в приложении.
Спасибо
Я сделал следующие обновления:
- Реализован сервлет фильтра ExtensionsFilter путем удаления блока if (ServletFileUpload.isMultipartContent(httpRequest)) {} из исходного файла исходного кода ExtensionsFilter.
обновлен код 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>
Пожалуйста помоги. Спасибо.