在一个带有分页的列表页面(list.action),我在第三页删除了一个记录,然后返回到列表页面,返回到了第一页,我希望能返回到第三页。<action name="delete" class="com.zeng.action.UserManageAction" method="delete">
  <result type="redirect">list.action</result>
</action>这是struts关于删除的配置,用了redirect进行重定向。看来是这个东西会把request中的分页信息东西丢掉。我又不希望把分页信息放到session中。这个问题怎么解决呢?

解决方案 »

  1.   

    为什么要在配置里面写redirect呢
    在action中一样可以redirect而且可以在request中放上许多变量,这样就可以了把
      

  2.   

    你可以这样做,^_^
    在你的UserManageAction类中
    ActionRedirect redirect = new ActionRedirect(mapping.findForward("success"));//这里的success应该就是对应你的list.action
    redirect.addParameter("page",request.getParameter("page"));//获得当前页
    return redirect;
      

  3.   

    这个是struts1.x用来在重定向时存参数,我估计struts2也差不多
      

  4.   

    struts2中没有找到ActionRedirect,我找到一个ServletActionRedirectResult里面有类似的方法。但是struts2的Action方法里面的返回值是String类型的,不是struts1.*中的ActionForward。咋整?
      

  5.   

    问题解决了,如下修改配置就可以了:<action name="delete" class="com.zeng.action.UserManageAction" method="delete">
      <result name="success" type="redirect-action">
        <param name="actionName">list</param>
        <param name="pageBean.pageNumber">${pageBean.pageNumber}</param>
      </result>
    </action>但是发现这个param只能是基本类型。好像不能传递自定义的对象(PageBean)。感谢for_cyan(Cyan)、zjf405(浪子阿飞)的帮助。
      

  6.   

    发现还有一种更简单的写法
    <action name="delete" class="com.zeng.action.UserManageAction" method="delete">
      <result type="redirect">list.action?pageBean.pageNumber=${pageBean.pageNumber}</result>
    </action>