作者:Yan / xyzroundo
问题:
在jsp页面中想转发到struts2的action,用jsp语句进行转发,如果是<% getServletContext().getRequestDispatcher("/portal/homePage_home.action").forward(request,response); %> 不行,而这在struts1里是可以的。
如果用重定向语句 <% response.sendRedirect("portal/homePage_home.action");%>则可以,可以浏览器的url会被修改到重定向后的action路径。
解决方法:
由于struts2与struts1原理不同, 使用的拦截器的机制,应该是这个原因使得 getServletContext().getRequestDispatcher()无法转发到action。要想实现以上需求的请求转发,可以用struts2标签<s:action>,在jsp里写如下代码:
<s:action name="homePage_home" namespace="/portal" executeResult="true"></s:action>
就OK了!