处理结果(result)和默认action

默认action,在package元素内部添加<default-action-ref name="">
,那么package 对应的namespace下面,如果没找到action,就会自动跑到这个元素设置的action处理。

处理结果:result
有两种
1.局部的,在<action>元素下面配置result
2.全局的,在<global-results>元素下面配置result元素

局部:
<result name="" type="">
type属性的默认值是dispatcher
<param name="location">/xxx/xxx.ftl</param>
<param name="parse">true</param>
param的name属性可以是:
location,指定视图对应的资源路径
parse指定是否允许在实际视图名字中使用ognl表达式,默认是true。如果是false,视图将无法使用表达式。
</result>

简化
<result name="">这里直接写实际视图路径</result>

webwork支持多种视图技术,jsp,velocity和freemarker等。

action仅仅返回一个字符串表示将以那个result作为视图,和使用神马视图技术无关。而是根据xwork.xml的配置来使用对应的视图技术.
webwork-default.xml有如下类似配置
<result-types>
<result-type name="name就是我们写action的result对应的type属性" class="" />
</result-types>
如果result-type的元素中配置default=true,表示默认的类型。

处理结果类型是通过实现com.opensymphony.xwork.Result接口。默认支持的有
chain,action链式处理结果类型。
dispather,用于与jsp整合的结果类型
freemarker,用于与freemarker整合
httpheader,用于处理特殊http行为结果
redirect,跳转
redirect-action,跳转到另一个action
actionName参数,用于指定action名字
namespace,用于指定action所在命名空间。
stream,用于像浏览器返回一个InputStream,是交由用的一个feature。如使用在验证码,各种报表,图片生成。在ction定义一个InputStream类型。在result元素中需要设置对应的输出流

<result type="stream">
头信息,设置内容类型
<param name="contentType">image/jpeg</param>
设置输入流
<param name="inputName">icoFile</param>
设置缓存大小
<param name="bufferSize">1024</param>
</result>
xslt,用于整合XML/XSLT结果
velocity,用于整合velocity模版技术
plaintext,用于显示某个页面原始代码的结果类型,将文件源代码输出(整个文件的内容都会被输出,而表达式,标签之类的也也被输出)。可以在result中配置<param name="charSet">utf-8</param>来设置编码。


动态结果
配置result时,可以使用表达式语言,${属性名}来动态设置。还可以使用OGNL,${属性名.属性名.属性名}

全局结果如
<package name="myaction" extends="webwork-default">
<default-action-ref name="myaction" />
<global-results>
<result name="xxx">MyJsp.jsp</result>
</global-results>

<action name="*action" class="action.MyAction" method="{0}">
<result>MyJsp.jsp</result>
</action>
</package>
另外,action级别的result,如果和全局同名,action的会覆盖全局的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值