Redirect Struts 2-重定向操作的持久属性值

Redirect Struts 2-重定向操作的持久属性值,redirect,struts2,Redirect,Struts2,我希望在重定向到其他操作后保留属性值。我知道该值将消失,因为我们正在导航到不同的操作(请求)。但我需要知道如何才能做到这一点 这是我的密码: <action name="save" class="saveAction" method="saveData"> <result name="success" type="redirectAction">redirectedPageAction</result> <

我希望在重定向到其他操作后保留属性值。我知道该值将消失,因为我们正在导航到不同的操作(请求)。但我需要知道如何才能做到这一点

这是我的密码:

<action name="save" class="saveAction" method="saveData">
            <result name="success" type="redirectAction">redirectedPageAction</result>
            <result name="successView" >successView.jsp</result>
            <result name="error" >error.jsp</result>
</action>

    <action name="redirectedPageAction" class="month" method="">
        <result name="success">employeesList.jsp</result>
    </action>

重定向页面操作
successView.jsp
error.jsp
employeesList.jsp
在SaveAction类中,我使用addActionMessage(String msg)方法设置一个值。我也有相同的getter/setter

我尝试过这个,但没有成功:

    <action name="redirectedPageAction" class="month" method="">
          <result name="success">employeesList.jsp>
               <param name="msg">${msg}</param>    
          </result>
    </action>

employeesList.jsp>
${msg}
我想要在我的employeelist.jsp页面中由adActionMessage(msg)设置的值。我得到空指针异常


请提供帮助。

根据请求创建操作。如果您实际上没有将任何内容从第一个操作传递到第二个操作,那么第二个操作将不会检索任何内容。getter不会改变HTTP机制


如果您对消息/等特别感兴趣,请使用,或手动执行。

因为您已经提到了这一点,并且您知道它将创建新的请求周期和操作,并根据请求创建操作,因为它们也是数据对象,这意味着您的请求/响应参数将丢失

现在你别无选择

  • 尝试使用Struts2内置支持
  • 创建此拦截器是为了将ValidationAware操作的消息/错误和字段错误存储到HTTP会话中,在您的用例中非常有用


    如果您想要更大的范围,您可以在会话中存储数据并在稍后阶段检索该数据,或者可以将值作为查询参数传递。

    您可以将属性变量与
    重定向操作一起作为如下参数传递

    <action name="save" class="saveAction" method="saveData">
                <result name="success" type="redirectAction">
                   <param name="actionName">redirectedPageAction</param>
                   <param name="msg">${msg}</param>
                </result>
                <result name="successView" >successView.jsp</result>
                <result name="error" >error.jsp</result>
    </action>
    
    
    重定向页面操作
    ${msg}
    successView.jsp
    error.jsp
    

    另外,不要错过在
    redirectedPageAction
    action

    中添加
    msg
    变量的getter/setter,我以前遇到过这个问题,有时在一个操作之后需要显示一个全新的视图,而重定向结果不考虑任何以前的数据(http请求内容)。 我们想创建一个自定义拦截器,但在创建之前,我发现

    这真的帮了我们很多忙

    话虽如此,您使用的是Struts 2的哪个版本?我们使用Struts 2.2.3,传递给重定向的参数工作正常。
    这两个动作中都有setter和getter吗?

    谢谢你的回答。正如我在问题中指出的,这对我不起作用。这和你提到的不一样。我假设您希望将
    msg
    变量从
    saveAction
    类传递到
    redirectPageAction
    类。因此,在
    success
    结果中,您需要添加
    type=redirectAction
    ,并指定操作名称和
    msg
    变量作为参数。这不是你的情况吗?你尝试的东西(添加参数)是使用
    month
    action类映射,它应该是使用
    saveAction
    类映射,使用我在回答中提到的格式。看一看Thx的回复,但这似乎对我不起作用。。!我无法在jsp中获取msg的值。无法说您缺少了什么,但我在我的项目中成功地使用了此方法。感谢您的回答。我一定会检查相同的。感谢您的回复。根据我的需要,在会话中存储数据可能不可行,但另一个选项似乎很好。再次使用thx@程序员1几乎任何通过重定向持久化数据的东西都会使用会话——它是用户特定数据的去向。消息存储拦截器将会话抽象出来,但它就是这样工作的。谢谢你的回复。但我用上面的帖子解决了我的问题。