在我的 struts 2 项目中,当使用重定向操作时,我丢失了所有值,例如操作错误和字段错误。
我在网上查了一下,发现有2个选项
- 链条 - 这个用得不多,我不知道为什么..
- MessageStoreInterceptor - 这需要放置在每个操作中
那么,任何人都可以告诉我何时首选重定向(或 RedirectAction)以及何时首选链。
重定向操作会丢失当前值堆栈(请求范围内的任何内容),您当然可以通过将这些值作为参数传递给下一个操作来设置操作来保留这些值,但这有点痛苦。
Chain 保留了值堆栈,因此下一个操作可以处理从前一个操作创建的参数,而无需显式传递它们,而且由于存在雪球效应,您可以使用视图中的所有参数。
但人们普遍认为,自上而下的解决方案(也许自上而下不是最好的词......“结构化”)比构建意大利面条动作的迷宫更好。
因此,当您面临让某些东西正常工作的压力并且不太熟悉 struts2 时,请使用链或重定向,然后一定要回来修复它!一般来说,您应该使用拦截器。
如果某个操作根据某些条件路由到其他操作,最好让拦截器将其应用于包并将需要此有趣行为的所有操作放入该包中。那么这适用于哪些动作就非常清楚了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)