关于struts2在页面请求转发到action的问题

    技术2025-10-03  7

    作者: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了!

    最新回复(0)