Struts2框架中,一个完整的结果视图配置文件是:
<action name="Action名称" class="Action类路径" method="方法名">
<result name="逻辑视图名称" type="结果类型">
<param name="参数名称">参数值</param>
</result>
</action>
例如:
<action name="loginUser" class="com.user.UserAction">
<result name="success">/jsp/success.jsp</result>
</action>
从上例可以看出,<result></result>标签包含两个属性name和type。其中name属性指定了逻辑视图名称,type属性指定了结果类型。还可以通过<param></param>标签为返回结果设置参数。
注:name属性的默认值为success,type属性的默认值为dispatcher(转发)。
Struts2支持多种结果类型,在struts-default.xml文件中可以找到Struts2所支持的结果类型。如下:
<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>
返回类型的作用:
chain
将两个连续执行的Action串联,通过前一个Action的getXXX()方法与后一个的Action的setXXX()方法完成Action值的传递
dispather
返回结果对应视图为JSP。如果没有配置任何结果,则此类型被自动使用
freemarker
返回结果对应视图为Freemarker视图模板
httpheader
返回HTTPudi信息,控制特殊HTTP行为
redirect
重定向到另一个JSP页面
redirectAction
重定向到一个Action
stream
向浏览器返顺一个数据流,一般用于文件下载
velocity
返回结果对应视图Velocity视图模板
xslt
Action执行完毕属性信息进行转换
plainText
显示某个页面的原始代码的结果类型
redirect-action
作用同redirectAction。
Struts2支持的结果类型很多,但最常用的就是请求转发(dispatcher)、重定向(redirect)和Action链(Chain)。