Struts2.3上下文中redirect
和redirectAction
之间的主要区别是什么。
我在下面看到redirect和redirectAction的网址。
我清楚以下几点:
redirectAction
中,控制跳转到不同的操作(在相同或其他包中)redirectAction
重定向。但是,当我实施上述两个示例时,我只需要更改struts.xml
。
首先,我对在redirectAction
这比ServletRedirectResult更好,因为它没有 要求您对ActionMapper处理的URL模式进行编码 在你的struts.xml配置文件中。这意味着你可以改变 您的URL模式在任何时候都可以运行。 强烈建议您重定向到另一个 动作,您使用此结果而不是标准重定向结果。
其次,我仍然不太清楚这两者之间的区别。
答案 0 :(得分:2)
差别很明显:redirectAction
只是另一种结果类型,它扩展了redirect
结果类型,提供了属性actionName
,namespace
和method
。这些属性用于构建用于替换location
结果类型的redirect
属性的URI。
声明没问题,更好地从ActionMapping
构建网址,该网址由redirectAction
结果类型实现,而不是手动编码。甚至手动总是使用UrlHelper
而不是硬编码。在JSP中始终使用s:url
标记。
答案 1 :(得分:1)
一个重定向到操作,一个重定向到任意资源。
actionRedirect
对于大多数Struts 2应用程序更好,因为大多数重定向将发生在应用程序内的位置,您需要提供的只是其映射中的操作名称。
你可以用普通的redirect
做同样的事情,但你需要提供动作扩展,如果有的话,所以它有点丑陋而且有点脆弱(例如,如果动作扩展改变了,虽然很少发生这种情况。)