struts2的Result组件

来源:互联网 发布:一淘网好还是淘宝网好 编辑:程序博客网 时间:2024/06/06 06:36
Result组件
1)Result是Struts2中用于向客户端输出的组件,转发和重定向可以理解为特殊的输出方式。
2)Struts2中预置了10种类型的Result,定义在struts-default.xml中。
3)每一个Result实际上就是一个类,他们都实现了接口Result。



一,redirectAction类型的Result
1、作用
    将请求重定向给一个新的Action。
2、语法
*1)完整的
    <result name="success" type="redirectAction">
        <param name="namespace">
            /NAMESPACE
        </param>
        <param name="actionName">
            ACTIONNAME
        </param>
    </result>
2)如果当前Action与重定向Action位于同一个namespace下,那么namespace的设置可省
    <result name="success" type="redirectAction">
        <param name="actionName">
            ACTIONNAME
        </param>
    </result>
3)可以进一步简化
    <result name="success" type="redirectAction">
        ACTIONNAME
    </result>
二,json类型的result
1、作用
--json类型的Result是直接向页面做输出的,它可以根据对应Action中的属性生成一个json格式的
字符串{"id":1,"name":"zs"},并将其发送给页面的调用方。
--一般情况下,这种类型的Result被用于做异步校验时使用。
2、使用步骤
1)导包
2)修改Action所在package的继承
3)在struts.xml中配置result
    *a、将Action中某一个属性做成json字符串
        <result name="success" type="json">
            <param name="root">属性名</param>
        </result>
        --如果指定的是一个基本类型的属性,那么它会直接输出这个属性的值
        --如果指定的是一个非基本类型的属性,那么它会将这个对象做成json字符串,比如
            对象user(id,name),对应的json字符串是{"id":1,"name":"ps"}
    b、将Action中某几个属性做成json字符串
        <result name="success" type="json">
            <param name="includeProperties">
                属性名1,属性名2,属性名3,...
            </param>
        </result>
        那么该result会将这几个属性做成json字符串,
        如:{"属性名1":"a","属性名2":"b","属性名3":"c"}
    c、将Action中全部属性做成json字符串
        <result name="success" type="json">
        </result>
    后2种方式,有个规则,这里如果有JavaBean的属性,那么做成的json字符串,该字段不完整。

三,stream类型的result
stream类型的Result
1、作用
    向客户端以流的方式直接输出数据。实际上是Result组件创建一个输出流,然后输出Action中
    指定的内容(输入流)。
2、语法
    <result name="success" type="stream">
        <param name="inputName">属性名</param>
    </result>
    --type="stream",对应的是struts-default.xml中预置的名为stream类型的result。
    --name="inputName",其中inputName是StreamResult类的一个属性,该标签的含义是
        向StreamResult对象的inputName属性注入值。
    --属性名就是向inputName属性注入的具体的值。
3、使用步骤
    1)Action中定义InputStream类型的属性,并提供get、set方法。
    2)在struts.xml中配置这个action.
    3)在action配置下,配置stream类型的Result,指定Action中的输入流属性名。

四,dipatcher类型
    它为默认类型的result
0 0
原创粉丝点击