首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

《研磨struts2》第五章 Result 之 5.2 预约义的Result

2012-07-03 
《研磨struts2》第五章 Result 之 5.2 预定义的Result5.2??预定义的Result5.2.1??预定义的ResultType在Strut

《研磨struts2》第五章 Result 之 5.2 预定义的Result

5.2??预定义的Result

5.2.1??预定义的ResultType

在Struts2中,预定义了很多ResultType,其实就是定义了很多展示结果的技术。Struts2把内置的<result-type>都放在struts-default包中。struts-default包就是我们配置的包的父包,在第4章已经看到这个包定义在struts2-core-2.1.8.1.jar包中的根目录下的文件struts-default.xml中。

在这个包中,可以找到相关的<result-type>的定义,<result-types>元素是<package>元素的直接子元素。Struts2预定义如下:

?

?

图5.1? 使用redirect的欢迎页面

仔细看看,有什么不同?

很明显,这里没有正确的显示出帐号的值来,看看后台有值吗?肯定是有的。这就说明经过“redirect”这个ResultType,跳转到欢迎页面的时候,两个请求对象不是一个了,因此在欢迎页面无法获取到帐号的值了。

你可以把struts.xml中,type=“redirect”的配置去掉,或者改成type=“dispatcher”,再次运行看看,欢迎页面就应该有值了。

2:几个小知识点

?????? 对比着dispatcher的ResultType,来看看相应的几个问题。

(1)同样在<result>元素的定义中可以使用Action的execute方法运行之后的数据。

?????? 测试示例,同样在Action中定义一个folder字符串,并在execute中对它赋值,跟前面一样,这里就不去赘述了。

那么,在<result>的定义中就可以引用folder这个变量,示例如下:

?

图5.2? 使用chain的欢迎页面

仔细观察上面的欢迎页面,会发现能够访问到用户在登录页面填写的帐号数据。再来看看后台,会输出如下信息:

?

package>??

5.2.7??其他ResultType

除了前面提到的这些result,Struts2还提供其他的Result,比如用于同Velocity、xslt等的结合,这里简单的介绍一下:

1:velocity:用来处理velocity模板。Velocity是一个模板引擎,可以将Velocity模板转化成数据流的形式,直接通过JavaServlet输出。

2:xslt:用来处理处理XML/XLST模板,将结果转换为xml输出。

3:httpheader:用来控制特殊HTTP行为

4:stream:用来向浏览器进行流式输出

?

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4051.html】

欢迎访问http://sishuok.com获取更多内容

热点排行