2008-03-24
Struts2 Core Developers Guide-Result Types
1.总览
action负责applicate state,result负责view状态的管理。
2.Chain Result
3.Dispatcher Result
页面跳转,否则页面include。
详细代码需要跟踪学习。
4.FreeMarker Result
5.HttpHeader Result
6.Redirect Result
7.Redirect Action Result
8.Stream Result
9.Velocity Result
10.XSL Result
11.PlainText Result
12.Tiles Plugin
action负责applicate state,result负责view状态的管理。
2.Chain Result
- 实现类为ActionChainResult.java
- 主要和ChainInterceptor配合用于Action Chaining
- 特点是把action的valuestack和prameters往下传。
3.Dispatcher Result
- 实现类ServletDispatcherResult
- 可选参数为location(jsp文件的路径),parse(location中的属性是否需要ognl解析,默认为true)。
- location的解析通过StrutsResultSupport类的conditionalParse方法实现。
- 首先判断是否存在PageContext,如果存在则表示页面是跳转,而不是通过action标记include。
- 其次如果不存在PageContext
if (!response.isCommitted() && (request.getAttribute("javax.servlet.include.servlet_path") == null))
页面跳转,否则页面include。
详细代码需要跟踪学习。
4.FreeMarker Result
- 实现类为FreemarkerResult.java
- 参数比上一个result多了contentType(定义返回的contentType,默认text/html; location属性可以获取的ftl的相对路径为(1)action对应资源的web路径,action对应的java路径。
- writeIfCompleted默认为false,如果true只有不存在ftl解析错误的时候才写入到流中。
5.HttpHeader Result
- 实现类HttpHeaderResult
- 直接设置result的status例如404,403等。
- 可以设置result的headers,headers的值可以用ognl表达式解析。
- error可以直接定义httpresponse的错误码.
- errorMessage设置了error后显示在页面上的错误信息。
6.Redirect Result
- 实现类ServletRedirectResult.java
- 主要功能是调用response.sendRedirect方法直接改变浏览器的地址栏信息,所有原先运行的action的信息都会丢失,因此在两个action之间传递值方式只有通过session或者querystring
- location支持ognl解析.
7.Redirect Action Result
- 实现类ServletActionRedirectResult继承自ServletRedirectResult
- 该类利用ActionMapper.getUriFromActionMapping方法解析redirecturl。
- 关于actonnane,method,namespace的解析和chain result一致,并且支持ognl解析。
- 和rediract result一样能够提供额外的parameter传递。
8.Stream Result
- 实现类StreamResult
- 主要用于向respone直接输入raw格式的数据,用于显示图片以及文件下载等场合。
- inputName属性定义了action中对应的inputstream的get方法,支持ognl.
- contentType ,contentLength,bufferSize不言自明。
- contentDispostion属性文件下载是显示另存为的文件名。
9.Velocity Result
- 实现类VelocityResult
- 功能和Freemaker类似这里不做介绍.
10.XSL Result
- 实现类XSLTResult
- 主要目的是利用xslt模板把action对象转化为xml格式的文档。
- 个人认为可以利用freemarker文档实现,不用那么费劲用xslt实现。节省学习的成本。
11.PlainText Result
- 实现类PlainTextResult
- 相当于把dispather输出的html页面用文本的形式输出.
- 个人认为可能主要应用于ajax场合。
12.Tiles Plugin
- 类似jsp页面模板之类的东西,和asp.net的masterpage应该类似,但是现在貌似sitemesh更流行,tiles是struts1时代遗留的东西。不想花时间去研究了。
发表评论
- 浏览: 7954 次
- 性别:

- 来自: 福建福州

- 详细资料
搜索本博客
最新评论
-
struts2实践- 结合jquery ...
客户端和服务端配合验证的方案有吗?
-- by hotdog -
struts2实践- 结合jquery ...
只用js验证很不保险,服务端验证不可少
-- by kjj -
struts2实践- 结合jquery ...
jquery 比较耗资源~
-- by happy002 -
struts2实践-页面分页的 ...
能发一个吗 谢谢 dawnco@163.com
-- by adapt -
struts2实践- 结合jquery ...
long_jianxiu 写道不晓得有没有完整的代码,我现在弄的一头雾水的,不知 ...
-- by luckaway






评论排行榜