首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从faces-config运行servlet

从faces-config运行servlet
EN

Stack Overflow用户
提问于 2011-01-12 08:11:24
回答 1查看 1.3K关注 0票数 0

这将很难解释..所以,在a.jsp中,我有这样的东西:

代码语言:javascript
复制
<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>

现在,按下"Send“按钮将运行filter,因为(我假设) filter会为每个Faces Servlet运行(所以对于每个jsp?)。我的web.xml文件:

代码语言:javascript
复制
    <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><servlet-mapping>。好了,我已经把"action“属性改成了"TestServlet.do",添加了这个:

代码语言:javascript
复制
   <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还是不能工作..我尝试在faces-config.xml中添加以下内容:

代码语言:javascript
复制
<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>

但是它没有给出任何结果..有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-12 09:25:24

<h:form>替换为<form>,以便可以利用action属性。

或者,不使用servlet,而只使用JSF方式的托管bean操作。因此,您只需要实现本地x:upload组件的decode(),从而将过滤器收集的上传文件作为bean属性。或者,如果工作量太大,只需重用现有的JSF文件上传组件,如Tomahawk的t:inputFileUpload。如何使用它可以在this article中找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4664128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档