Это будет сложно объяснить. Итак, в a.jsp у меня есть что-то вроде этого:
<h:form enctype="multipart/form-data" >
<td><input type="text" name="imgName" value="" size="7"/></td>
<td><input type="text" name="imgDesc" value="" size="30"/></td>
<td>
<x:upload target="/upload/#{loginBean.user.login}/#{loginBean.user.filesUploaded}_image.jpg"/>
</td>
<td>
<h:commandButton value="Send" action="submit"/>
</td>
</h:form>
Теперь, нажав кнопку «Отправить», запустится фильтр, потому что (как я предполагаю) этофильтр работает для каждого сервлета Faces (так для каждого jsp?).Мой файл web.xml:
<filter>
<filter-name>Upload Filter</filter-name>
<filter-class>DomainModels.Adds.UploadFilter</filter-class>
<init-param>
<param-name>sizeThreshold</param-name>
<param-value>1024</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Upload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
Как принудительно запустить сервлет после фильтрации?Я где-то читал, что мне нужно написать простые <servlet>
и <servlet-mapping>
.Итак, я изменил атрибут «action» на «TestServlet.do», добавил это:
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>DomainModels.Adds.AddImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet.do</url-pattern>
</servlet-mapping>
, но мой TestServlet все еще не работает .. Я пытался добавить в Face-Config.xml это:
<navigation-rule>
<from-view-id>/upload/a.jsp</from-view-id>
<navigation-case>
<from-outcome>submit</from-outcome>
<to-view-id>/TestServlet.do</to-view-id>
</navigation-case>
</navigation-rule>
но это не дает результата .. Есть идеи?