Struts2中结果集转发
Struts2中结果集转发
开源俱乐部 发表于4年前
Struts2中结果集转发
  • 发表于 4年前
  • 阅读 48
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 结果集介绍 Struts2支持的结果类型 知识扩展

一、结果集介绍

        Struts2的Action处理用户请求结束后,返回一个普通字符串——逻辑视图名,必须在struts.xml文件中完成逻辑视图和物理视图资源的映射,才可以让系统转到实际的视图资源。

        简单的说,结果是告诉struts2框架,当Action处理结果时,系统下一步做什么。当Action返回一个普通字符串时,系统下一步将做什么。

        Struts2中支持局部结果和全局结果。

        这些由局部结果和全局结果构成的结果,我们称为结果集

(1)局部结果

        将<result…/>作为<action…/>元素的子元素配置。一个<action…/>元素可以有多个<result…/>元素,这表示一个Action可以对应多个结果。例如:

<action name="*">
            <result name="success" type="dispatcher">
               <param name="location">/login.jsp</param>
            </result>
</action>

        其中,type属性指定结果类型为dispatcher。

        <param name="location">/login.jsp</param>为该逻辑视图指定实际的视图资源。

(2)全局结果

        将<result…/>作为<global-result…/>元素的子元素配置。例如:

<global-results>
            <result name="error">/error.jsp</result>
        </global-results>

二、Struts2支持的结果类型

(1)struts2支持的结果类型

        Struts2内建支持的结果类型有:

        (1)chain

        用来处理Action链,Action链式处理的结果类型。

        将action的带着原来的状态请求转发到新的action,两个action共享一个ActionContext,actionName指定转向的新的Action的名字,method指定转向哪个方法,namespace指定新的Action的名称空间,不写表示与原Action在相同的名称空间。

        (2)dispatcher

        请求转发,底层调用RequestDispatcher的forward() 方法,dispatcher是result的type属性默认值,通常用于转向一个JSP。

        Dispatcher类型是最常用的结果类型,也是struts框架默认的结果类型。

        (3)freemarker

        处理FreeMarker模板。

        用freemaker模板引擎呈现视图,location指定模板(*.ftl)的位置,parse如果为false,location的值不会被OGNL解析,contentType指定以何中类型解析,默认为text/html。

        (4)httpheader

        控制特殊HTTP行为的结果类型。

        (5)redirect

        重定向到一个URL。

        新页面无法显示Action中的数据,因为底层调用response.sendRedirect(“”)方法,无法共享请求范围内的数据。

        (6)redirectAction

        重定向到一个Action。

        参数与chain用法相同,允许将原Action中的属性指定新名称带入新Action中,可以在Result标签中添加 <param name=”b”>${a} </param>,这表示原Action中的变量a的值被转给b,下一个Action可以在值栈中使用b来操作。

        (7)stream

        向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据。

        (8)velocity

        处理Velocity模板。

        (9)xslt

        处理XML/XLST模板。

        (10)plainText

        显示原始文件内容,例如文件源代码。

(2)struts2常用的结果类型

        struts2常用的结果类型有:chain、dispatcher、redirectAction、freemarker。

三、知识扩展

(1)如何查看Struts2支持哪些结果类型?

        在\Web App Libraries\struts2-core-2.3..8.jar\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>


共有 人打赏支持
粉丝 10
博文 39
码字总数 31422
×
开源俱乐部
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: