【问题标题】:How to forward request from servlet to action of struts2?如何将来自 servlet 的请求转发到 struts2 的操作?
【发布时间】:2013-04-20 11:42:01
【问题描述】:

我想将 Servlet 的请求转发到 Action 使用 RequestDispacher like this

RequestDispatcher dispatcher=request.getRequestDispatcher("hello.action");
dispatcher.include(request, response);

它不工作。我该如何解决这个问题?

【问题讨论】:

    标签: java servlets struts2 dispatcher


    【解决方案1】:

    为此,您可能还需要将过滤器设置为在 FORWARD 上运行(并且如您的代码所示,包括,尽管您声明您想要一个 FORWARD):

    <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher> 
      <dispatcher>FORWARD</dispatcher>
      <dispatcher>INCLUDE</dispatcher> <!-- If you want includes as well -->
    </filter-mapping>
    

    【讨论】:

      【解决方案2】:

      使用servlet中的代码

      getServletContext().getRequestDispatcher("/hello.action").forward(request, response);
      

      您还配置了 struts2 过滤器以接受转发请求

      <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
          org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
      </filter>
      <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
      </filter-mapping>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-04
        • 1970-01-01
        • 2011-06-20
        • 2015-09-12
        • 2015-08-15
        • 1970-01-01
        • 1970-01-01
        • 2014-02-25
        相关资源
        最近更新 更多