- 浏览: 671580 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (233)
- mysql (20)
- tomcat (17)
- log4j (4)
- jdbc (2)
- hibernate (7)
- highcharts (10)
- java (27)
- bat (5)
- html (18)
- xampp (6)
- apache (9)
- Spring (3)
- windows (13)
- js (38)
- jquery (10)
- struts (20)
- json (1)
- css (7)
- 浏览器 (5)
- ASCII码表 (1)
- svn (3)
- 正则表达式 (3)
- vb (1)
- jsp (4)
- xml (2)
- C语言 (1)
- dll (1)
- 数据库 (8)
- 随便写 (19)
- WebService (1)
- Linux (1)
- 云计算 (2)
- HTTP (2)
- 音楽 (1)
- eclipse (2)
- JFreeChart (1)
- jnative (1)
- ant (1)
- WordPress (1)
- JavaEE (1)
- tag (1)
- ognl (1)
- 设计模式 (3)
- sql (2)
- office (5)
- 软件 (6)
- 健身 (18)
- php (2)
- 读书 (4)
- 管理 (1)
- sublime text (2)
- angularJS (1)
最新评论
-
资深菜鸟程序员:
正解 当中,你是最早的,你转载的那篇已经消失了,所以你就是最吊 ...
程序包com.sun.image.codec.jpeg不存在 -
jun1022509040:
http://download.csdn.net/detail ...
C3P0错误APPARENT DEADLOCK!!!解决 -
alafighting:
厉害!膜拜了~
程序包com.sun.image.codec.jpeg不存在 -
darrenzhong:
c3p0 报错APPARENT DEADLOCK!!! 解决方 ...
C3P0错误APPARENT DEADLOCK!!!解决 -
tslihejun:
谢谢,解决了我的问题。
highcharts 大量数据下y轴值精度丢失的解决
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包中的缘故吧。有时间再调查吧。
例如:
我想打开Exception的log,并且想重定义checkbox.uncheckedValue。
一开始是这么写的,defaultStack不动,在我自己定义的拦截器栈mydefault中重新定义。
<!-- 自定义拦截器栈:名为mydefault --> <interceptor-stack name="mydefault"> <!-- 自定义拦截器 --> <interceptor-ref name="message" /> <!-- 自定义拦截器 --> <interceptor-ref name="authority" /> <!-- 覆盖checkbox拦截器的属性,当页面上的checkbox没有被选择时,默认为0 --> <!-- 打开log --> <interceptor-ref name="defaultStack"> <param name="checkbox.uncheckedValue">0</param> <param name="exception.logEnabled">true</param> <param name="exception.logLevel">info</param> </interceptor-ref> <!-- 系统默认的拦截器 --> <interceptor-ref name="defaultStack" /> </interceptor-stack>
这么设定看似没有问题,但是exception.logEnabled和exception.logLevel并没有生效。
如果把<interceptor-ref name="defaultStack" />这一行放在设定参数的前面,就会导致checkbox.uncheckedValue无效。
最后采用了重定义defaultStack,把log参数的重定义写在defaultStack中,如下所示:
<!-- 重新定义默认拦截器栈 --> <interceptor-stack name="defaultStack"> <interceptor-ref name="exception"> <!-- 重定义默认拦截器的参数 --> <param name="logEnabled">true</param> <param name="logLevel">info</param> </interceptor-ref> <interceptor-ref name="alias" /> <interceptor-ref name="servletConfig" /> <interceptor-ref name="prepare" /> <interceptor-ref name="i18n" /> <interceptor-ref name="chain" /> <interceptor-ref name="debugging" /> <interceptor-ref name="profiling" /> <interceptor-ref name="scopedModelDriven" /> <interceptor-ref name="modelDriven" /> <interceptor-ref name="fileUpload" /> <interceptor-ref name="checkbox" /> <interceptor-ref name="staticParams" /> <interceptor-ref name="params"> <param name="excludeParams">dojo\..*</param> </interceptor-ref> <!-- 把ConversionError换成自己的 --> <interceptor-ref name="myConversionError" /> <!-- <interceptor-ref name="conversionError" /> --> <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> </interceptor-stack>
然以把第一段代码中关于log参数重定义的部分去掉。这么一来,log和checkbox的参数都被重新定义了。
不知道为什么会这样,或许因为CheckboxInterceptor和ExceptionMappingInterceptor一个在struts2包中,一个在xwork包中的缘故吧。有时间再调查吧。
发表评论
-
在struts-default中使用json
2014-10-21 14:46 1236如何在struts-default中使用json ... -
在Struts2的service中取得国际化资源(i18n)
2014-07-01 17:53 897如下所示 String message = Loca ... -
Filter造成的乱码
2014-06-19 15:08 1827现象是:更新操作完成后,本应该是中文的字段都莫名 ... -
JSP中的标签
2013-10-10 09:08 975第一部分 通用标签之控制标签 1.条件判断标签 < ... -
升级到struts2.3后validate框架失效的解决
2013-09-26 17:46 2900突然之间validate验证框架不起作用了,上网查了一 ... -
Struts2中的JSP格式化输出
2013-05-21 08:35 1218第一步 在i18n资源文件中加入格式字符串 #number ... -
struts2清除session的方法
2013-02-21 14:04 3718文章转自:http://blog.sina.com.cn/s/ ... -
与apache有关的tomcat,struts2下的中文乱码
2012-05-03 10:14 18451.构建含有中文参数的url时,进行编码 2.tomcat会自 ... -
在jsp的include标签中使用绝对和相对路径
2012-04-20 10:18 11072jsp中的include标签可以使用相对路径和绝对路径,区别在 ... -
自定义Struts2中的ActionErrors
2012-03-31 11:02 3037<%-- ActionError --%> ... -
struts2 + spring 关于validateXXX()验证失败后保存Form中数据的解决方案
2012-04-06 10:43 3771问题: 使用struts2的validateXXX() ... -
[转载]去除 struts2 标签中的自动生成的布局样式
2012-03-08 16:32 1115struts2中包含了一些默认的模版文件($ {struts- ... -
struts2 在jsp中访问其他资源的非主流方案
2012-03-08 16:28 989jsp中有一个select标签,考虑到国际化和以后的扩展,所以 ... -
二次调用action,使用json解析设备返回的数据
2012-01-19 10:46 2611web服务器与某台设备通信,web服务器向设备发出http请求 ... -
struts2 动态压缩成zip文件下载(不生成临时文件)
2012-01-09 13:26 5057功能:文件下载 简述: 1.根据画面上的复选框进行文件打包下载 ... -
struts2 文件下载功能
2012-01-06 09:06 1160struts.xml <action name= ... -
struts2 中的文件上传
2011-12-21 18:21 1098struts.xml <!-- 配置文件上传的参数 ... -
struts2默认异常日志拦截器
2011-12-21 14:08 1460文章转自:http://hi.baidu.com/wuhuij ... -
重写Struts2的conversionError拦截器时的注意事项
2011-12-21 14:06 1456如果想重写Struts2的conversionError拦截器 ...
相关推荐
通过分析这些源代码,我们可以了解自定义拦截器的实现方式以及与默认拦截器如何协同工作。 而`WebRoot`目录则包含了Web应用的静态资源,如HTML、CSS、JavaScript文件,以及Struts2的配置文件(如`struts.xml`)和...
例如,`struts-default.xml`中包含了默认的拦截器栈,如`params`拦截器用于处理请求参数,`exception`拦截器用于处理异常,`validation`拦截器进行数据校验。 在深入源码之前,我们需要了解几个关键类: 1. `...
在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序形成一个拦截器链。当请求到达Action时,这些拦截器会按照顺序逐个执行其`intercept()`方法,最后调用实际的动作方法。拦截器可以独立于...
2. **默认拦截器栈**:`defaultStack`包含了Struts2内置的一些拦截器,如`params`(处理参数),`i18n`(处理国际化),`exception`(处理异常)等。 3. **应用全局拦截器**:现在,所有Action都会在执行前经过`...
3. **异常处理**:当Action执行抛出异常时,Struts2默认会跳过剩余的拦截器并执行相应的异常Result。如果拦截器处理不当,可能会导致预期的Result无法执行。 4. **ActionInvocation**:`ActionInvocation`是Struts2...
当请求到达控制器时,Struts2会依次调用这个栈中的拦截器,每个拦截器都有机会处理请求,然后决定是否将请求传递给下一个拦截器或直接返回响应。 创建一个简单的Struts2拦截器,你需要遵循以下步骤: 1. 创建拦截...
这里,我们创建了一个名为“myStack”的拦截器栈,并在其中添加了默认拦截器栈和我们自定义的`authorization`拦截器。 3. 应用拦截器:接下来,我们需要在Action配置中引用这个拦截器栈。这样,每次请求该Action时...
通过`<package>`标签的`default-interceptor-ref`属性,可以指定默认拦截器栈,或者在具体的Action配置中使用`interceptor-ref`引用特定的拦截器栈。 **5. 拦截器的生命周期** 拦截器的生命周期包括实例化、初始化...
- 使用`<default-interceptor-ref>`定义默认拦截器栈,所有未明确指定拦截器的动作都将使用这个栈。 4. **自定义拦截器**: - 创建一个新的Java类,实现`Interceptor`接口并重写`intercept()`方法。 - 在`...
`defaultStack`是Struts2提供的默认拦截器栈,包含了如`exception`、`params`、`i18n`等常用拦截器。 了解了拦截器的基本原理后,我们可以通过`Struts2.x 拦截器.avi`这个视频文件深入学习Struts2拦截器的实现细节...
默认拦截器栈`defaultStack`包含了Struts2预定义的一些拦截器,如`params`、`i18n`等。在添加自定义拦截器时,可以将其插入到默认拦截器栈中,也可以创建自定义的拦截器栈。 ### 五、测试与优化 完成上述步骤后,你...
-- 其他默认拦截器 --> <result name="success">/success.jsp <result name="invalid">/error.jsp ``` 至此,你已经掌握了Struts2拦截器的基本使用。实际开发中,你可以根据项目需求灵活组合和扩展拦截...
-- 将自定义拦截器添加到默认拦截器栈中 --> <!-- 配置Action使用自定义拦截器栈 --> <result name="profanityError">/errorPage.jsp <!-- 其他结果配置 --> </struts> ``` 在上述配置中,`...
在这个例子中,`defaultStack`是Struts2默认提供的拦截器栈,包含了一些基础的拦截器,如`params`(处理请求参数)、`i18n`(国际化)等。`myCustomInterceptor`则是我们自定义的拦截器。 创建自定义拦截器有三种...
通过这种方式,我们可以在不修改Action代码的情况下,利用Struts2拦截器实现国际化策略的动态调整,从而提供更灵活的多语言支持。 总的来说,Struts2拦截器和国际化是两个关键特性,它们分别提供了控制流管理和多...
Struts2还提供了一些内置的拦截器,如params(处理请求参数)、i18n(国际化支持)、exception(异常处理)等。这些拦截器极大地丰富了框架的功能,减少了开发者的工作量。 总的来说,Struts2的拦截器机制是其强大...
`defaultStack`包含了Struts2提供的所有默认拦截器,确保了基础功能的正常运行。 3. **包(package)与拦截器的关联**: - `<package>`元素定义了Action的集合,通过`extends`属性可以继承其他包的配置,例如`...
默认拦截器栈包含了Struts2框架预定义的一些拦截器,如`ExceptionMappingInterceptor`用于处理异常,`PrepareInterceptor`用于准备Action,`ModelDrivenInterceptor`用于模型驱动等。 3. `destroy()`: 这个方法在...
默认情况下,所有Action都会应用名为`defaultStack`的默认拦截器栈。如果你需要添加自定义拦截器,可以显式地引用它们。 ```xml <result>success.jsp ``` 在上述配置中,`someAction`会先经过`...
当请求到达Struts2时,框架会查找配置文件,如`struts-default.xml`,其中包含了默认的拦截器及其配置。这些拦截器实例化后形成一个列表,然后由ServletDispatcher按照配置的顺序逐一调用。拦截器的调用过程类似于...