首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

修改struts2 的默认拦截器的参数 时的顺序有关问题

2012-12-24 
修改struts2 的默认拦截器的参数 时的顺序问题struts2 的默认拦截器的参数可以修改,比如打开exception拦截

修改struts2 的默认拦截器的参数 时的顺序问题
struts2 的默认拦截器的参数可以修改,比如打开exception拦截器的log功能,设定checkbox没有选择时的默认值等等,在使用过程中发现如果顺序不对,设定是无效的。
例如:
我想打开Exception的log,并且想重定义checkbox.uncheckedValue。
一开始是这么写的,defaultStack不动,在我自己定义的拦截器栈mydefault中重新定义。


这么设定看似没有问题,但是exception.logEnabled和exception.logLevel并没有生效。
如果把<interceptor-ref name="defaultStack" />这一行放在设定参数的前面,就会导致checkbox.uncheckedValue无效。

最后采用了重定义defaultStack,把log参数的重定义写在defaultStack中,如下所示:

然以把第一段代码中关于log参数重定义的部分去掉。这么一来,log和checkbox的参数都被重新定义了。

不知道为什么会这样,或许因为CheckboxInterceptor和ExceptionMappingInterceptor一个在struts2包中,一个在xwork包中的缘故吧。有时间再调查吧。

热点排行