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机制
如果您对消息/等特别感兴趣,请使用,或手动执行。因为您已经提到了这一点,并且您知道它将创建新的请求周期和操作,并根据请求创建操作,因为它们也是数据对象,这意味着您的请求/响应参数将丢失 现在你别无选择
如果您想要更大的范围,您可以在会话中存储数据并在稍后阶段检索该数据,或者可以将值作为查询参数传递。您可以将属性变量与
重定向操作一起作为如下参数传递
<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几乎任何通过重定向持久化数据的东西都会使用会话——它是用户特定数据的去向。消息存储拦截器将会话抽象出来,但它就是这样工作的。谢谢你的回复。但我用上面的帖子解决了我的问题。