【问题标题】: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>