何时在struts2中使用重定向和链结果类型

Vip*_*pin 10 struts2

在我的struts 2项目中使用重定向操作时,我会丢失所有值,例如操作错误和字段错误.

我在网上查了一下,找到了2个选项

  • 链 - 这不是很多我不知道为什么..
  • MessageStoreInterceptor - 需要将其放在每个操作中

所以任何人都可以告诉我什么时候重定向(或RedirectAction)首选,何时是链首选.

Qua*_*ion 12

重定向动作会丢失当前值堆栈(请求范围内的任何内容),您当然可以通过将它们作为参数传递给下一个动作来设置保存这些值的操作,但这有点痛苦.

Chain保留了值堆栈,因此下一个操作可以处理从上一个操作创建的参数,而无需显式传递它们,因为有了这个雪球效果,您可以使用视图中的所有参数.

但人们普遍认为,自上而下的解决方案(可能自上而下不是最好的词......'结构化')比建立意大利面行动的迷宫要好.

因此,当你面临压力要求工作并且不过分熟悉struts2时,请使用链接或重定向,然后肯定会回来修复它!一般来说,你应该使用一个拦截器.

如果某个操作根据某些条件路由到其他操作,最好将拦截器应用于包并将所有需要此有趣行为的操作放在该包中.然后很清楚这适用于哪些行动.