前言
Struts 2中的Result是作为返回结果的,时当一个action处理完之后返回字符串的结果码。框架可以根据这个返回的字符串,映射到指定的页面。result元素可以分为两部分:一是结果映射,一部分是返回结果类型。
结果映射
result有两个属性可以配置:name属性和type属性。其中的name属性主要用来指定资源的逻辑名称,实际名称在标签内部指定。type属性就是result的返回类型。要注意的是,这两个属性都不是必须的,当我们没有配置这两个属性的时候,实际上框架为我们指定了默认值,其中name属性的默认值是success,type属性的默认值是dispatcher(转发)。正因为框架为我们设定了默认值才可以不用配置。
我们之前的配置都是使用result直接配置,实际上result标签还有一个子标签param
,该标签可以为result指定实际资源的位置,其有有一个必需的属性name,实际上就是之前文章中result的配置的资源。比如下面的配置:
<action name="login" class="action.LoginAction">
<result>
<!-- param的location用于指示资源的位置,标签的内容是参数的值 -->
<param name="location">/success.jsp</param>
</result>
<result name="error">/error.jsp</result>
</action>
这里指示资源的实际位置使用param标签,但是如果result的type属性是dispatcher的时候,上面的param标签是可以直接省略的,这也是前面没有写param标签也没有报错的原因。
结果类型
结果类型中常用的有四种:dispatcher、redirect、redirectAction和chain。其中dispatch