struts2 如何像struts1 那样在action 中直接跳转页面并能保存request 数据呢?
struts1:
return mapping.findForward("toJSP");   xml文件中配置
return new ActionForward("/aaa.jsp");  action指定位置struts2  如何能在action中随意跳转呢?本人做的项目 有一个登陆的 LoginAction  
未登陆用户 只能浏览, 当用户要执行除浏览外的操作时 会提示让用户登陆.在每个页面的头部都有执行登陆的条件.就是想 用户可能从不同页面登陆, 要实现 LoginAction  处理完登陆后再回原来页面 (从哪来回哪去),由于jsp页面比较多(200+),全部在struts2.xml 中配置不现实, 
response.sendRedirect(targetUrl) 能跳转但是不能保持数据.
由于action 中 会有很多数据要保存数据,且只在下个页面使用一次.所以存在session中不合适.所以想问问有没有像struts1--- return new ActionForward("/aaa.jsp");  action指定位置这个跳转方法.

解决方案 »

  1.   

    response是获取PrintWriter对象,
    out.print(turn);
      

  2.   

    就是想 用户可能从不同页面登陆, 要实现 LoginAction 处理完登陆后再回原来页面 (从哪来回哪去),
    这个好说.!
    在你的action里面增加一个属性 private String headUrl; 添加set/get
    每次来的时候,  headUrl = ServletActionContext.getRequest().getHeader("referer");
    在你的action中配置
    <result>${headUrl}</result>
    当然登陆失败就直接继续login.jsp呗
      

  3.   

    <s:text>标签应该是保存数据的.. 具体你测试下就知道了.跳转的话
    return "sucess"  然后在xml的
    <action>
       <result name="success">/index.jsp</result>
      

  4.   


    谢谢, 登陆跳转没问题了, 可是另外一个地方也用到这个
     当从 action 中跳转回来后再次提交表单, 
     此时action中 getHeader("referer")得到的是路径是action 的路径,自然报404.我明白为狠么会这样,可是不知道怎么解决,    当action 中跳转出来之后 不刷新, 如何再次进入次action 并能成功出来?
      

  5.   

    .....................s:text是国际化标签, 取textProvider里面的值的.!  - -!哪是什么存数据
      

  6.   

    那就在<result type="redirect">${headUrl}</...
      

  7.   

    izard999  好棒  谢谢