struts2中result的type跳转类型总结

来源:互联网 发布:软件项目实施计划 编辑:程序博客网 时间:2024/06/07 04:58

1,局部result和全局result

局部result包含在Action定义中, result属性是一个Action的子元素。其作用范围只能在本Action中。
全局result使用<global-result>来定义,其作用范围是所有的Action都可以使用

2,result的类型

Struts2框架默认配置中已经提供了很多的result类型,可以打开struts-default.xml配置文件来查看


橙色底是常用的几个类型:

chain:      Action链式处理的结果类型,也就是将结果转发到这个action中,服务端跳转到Action;
chart:       整合JFreeChart的结果类型
dispatcher: 用于整合JSP的结果类型
freemarker:用于整合freemarker结果类型。
httpheader:用于控制特殊的HTTP行为的结果类型。
jasper:        用于JasperReports整合的结果类型
jsf:               用于整合JSF后的结果类型
redirect:      实际上dispatcher和redirect的区别就是在于转发和重定向的区别。
redirect-action:用于直接redirect action。
stream:      用于向浏览器返回一个Inputstream(用于文件下载)
tiles:           用于整合Tiles后的结果类型。
velocity:     用于整合Velocity的结果类型。
xslt:            用于整合XML LT的结果类型。
plaintext:   用于显示某个页面的源代码

1,chain类型:即是服务器跳转action

Struts2框架支持配置多个Action组成一个链或者工作流来处理用户的请求,而Action链的实现,是通过拦截器 ChainingInterceptor完成的。 ChainingInterceptor在源执行完毕后将源Action的用户请求参数、值栈、session的数据赋值给目的Action,也就是 说,在执行多个Action过程中参数都是保留的。

2,redirect类型

redirect结果类型与Struts2框架默认的结果类型dispatcher相对应。到dispatcher类型是将请求转发到指定的视图资源,而redirect类型是重定向到指定的视图资源。重定向将会丢失所有的参数、值栈和请求属 性,即同时失去了Action的处理结果。而dispatcher是类型转发,将会把上述的所有数据资源转发给视图资源。这种机制和servlet技术中的response.sendRedict()和request.getRequestDispacher().forward(),是一样的道理。

使用redirect类型重定向action时,需要加后缀,如xxx.action

 <result name="success" type="redirect">joblistaction.action</result>

3,redirect-action类型:外部跳转到Action

redirect-action结果类型与redirect结果类型非常相似,都是重新生成一个新的请求,都是重新定向.但是使用redirect-action类型时不需要加后缀“.action”.

4,dispatcher用来转向页面,通常处理JSP

默认是dispatcher,该类型支持JSP视图技术。
对应子元素<param>,可以指定下面两个属性:
location:该属性定义了该视图对应的实际视图资源
parse:该参数指定是否可以在实际视图名字中使用OGNL表达式,Struts2框架默认该属性为true,即支持OGNL表达式。

如果没有指定result的name属性,则系统会默认为success;

如果没有指定location属性,系统会把<result> </result>中间的字符串当作实际视图资源来处理。
5.plainText方式
这种方式一般来说使用的比较少,可能用到的情况:原样输出源代码。

0 0
原创粉丝点击