`
sxw7362693
  • 浏览: 59625 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Struts2 学习笔记7--Result Type

阅读更多

Result Type(用于struts.xml中result元素的type属性的值)
一个提交到服务器的处理通常可以分为两个阶段,

第一个阶段查询服务器状态 (查询或者更新数据库),

第二个阶段选择一个合适的结果页面其返回给用户 (这里要讲的Result的内容)。


Struts2提供了对不同种类返回结果的支持,常见的有JSP,FreeMarker,Velocity等。
Struts2支持的不同类型的返回结果为

名字	                                   说明
Chain Result	                   用来处理Action链
Dispatcher Result	           用来转向页面,通常处理JSP
FreeMarker Result	           处理FreeMarker模板
HttpHeader Result	           用来控制特殊的Http行为
Redirect Result	                   重定向到一个URL
Redirect Action Result	   重定向到一个Action
Stream Result	                   向浏览器发送InputSream对象,通常用来处理文件下载
Velocity Result                    处理Velocity模板
XLS Result	                   处理XML/XLST模板
PlainText Result	           显示原始文件内容,例如文件源代码
S2PLUGINS:Tiles Result	   结合Tile使用

 

1.    dispatcher (服务器内部跳转,地址栏为action)
2.    redirect   (客户端跳转,地址栏变化为jsp)
3.    chain     (跳转到另外一个action,不能是jsp,地址栏为action)
4.    redirectAction (跳转到另外一个action,不能是jsp,地址栏变化为jsp)
5.    freemarker
6.    httpheader
7.    stream
8.    velocity
9.    xslt
10.    plaintext
11.    tiles

 

 

文档位置:




 

Global Results(全局结果集)
即为共用的action
配置:
    <package name="user" namespace="/user" extends="struts-default">
            <global-results>
                <result name="mainpage">/main.jsp</result>
            </global-results>
            <action name="index">
                <result>/index.jsp</result>
            </action>
         <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
                <result>/user_success.jsp</result>
                <result name="error">/user_error.jsp</result>
        </action>       
</package>


如果其他包中也需要用到这个全局结果集,需要用到package的extends
<package name="admin" namespace="/admin" extends ="user">
            <action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
                <result>/admin.jsp</result>
            </action>
</package>


其中默认的package继承struts-default,而struts-default package存在哪?


 

 

 

Dynamic Result(动态结果集)
可以在struts配置文件中去值栈中的值通过”$”。
配置:
    <package name="user" namespace="/user" extends="struts-default">
        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
            <result>${r} </result>
        </action>       
    </package>

${r}:Ognl表达式,表示在值栈中取得属性r的值


带参数的结果集
一次request只有一个值栈,所以forward中间action共享一个值栈。
redirect是客户端发两次请求,所以不能共享值栈。

Result总结:
返回结果页面:可以是action也可以是jsp
1.    常用四种类型:
     a)    dispatcher(默认)
     b)    redirect
     c)    chain
     d)    redirectAction
2.    全局结果集
     a)    global-results | extends
3.    动态结果(了解)
     a)    在action中保存一个属性,存储具体的结果location
4.    传递参数
     a)    客户端跳转才需要传递
     b)    ${}表达式(不是EL)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 69.1 KB
  • 大小: 80.6 KB
  • 大小: 64.7 KB
  • 大小: 94.7 KB
分享到:
评论
1 楼 202013 2010-10-23  

相关推荐

Global site tag (gtag.js) - Google Analytics