1. 在Struts2中默认为转发,也就是<result>标签中的type="dispatcher",type的属性可以修改为重定向Struts的重定向有两种:
type="redirect",可以重定向到任何一个web资源,如:jsp,html或Action 如果要重定向到Action,需要写上后缀:xxxx.action
type="redirectAction",可以重定向到Action,不需要写后缀,此种方式更通用些不会因为后缀的改变影响配置
2. 关于Struts2的type类型,也就是Result类型,他们都实现了共同的接口Result,都实现了execute方法,他们体现了策略模式,
具体Result类型参见:struts-default.xml文件:
<result-types>
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
<result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
<result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
<result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
<result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
<result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
</result-types>
我们完全可以自己根据需求扩展Result类型
3. 全局Result(紧接着写在<package>下面)和局部Result(写在action中)。可以通过配置文件继承,让多个包继承这个全局结果:
<global-results>
<result name="login" type="redirect">/login.jsp</result>
</global-results>