如果我在struts.xml中配置了upload的默认拦截器:
struts.xml
[code="java"]
1024
[/code]
在每次upload执行完后,在控制台中会两次输出下面的信息:
com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Removing file
如果我不在struts.xml中配置默认拦截器,那么在upload后removing信息就只会出现一次。
这是不是证明如果我配置了默认拦截器,那么默认拦截器会执行两次?
[b]问题补充:[/b]
谢谢先,但我怎么解决这个问题呢?
我必须限制文件大小,但又不能改defaule中的内容,而且就算能改也不行。
不同action需要不同的拦截需求
就是记录上传的日志嘛,
信息: Removing file 也就是把上传后的临时文件删除吧
以下是struts-default.xml中的defaultStack的配置:[code="xml"]
[color=red][size=medium][/size][/color]
dojo..*
input,back,cancel,browse
input,back,cancel,browse
[/code]
[code="xml"]<!-- 配置默认拦截器 -->
[/code]默认拦截器栈(defaultStack)中已经有了fileUpload的interceptor。
如果配置了默认拦截器栈,那么默认拦截器栈中的fileUpload会执行一次;
[code="xml"]
1024
[/code]
以上配置又会执行fileUpload拦截器。
到此,楼主一定明白了其中原因了!
上面得代码有点乱,重新发一下
struts-default.xml中的defaultStack的配置;
[code="xml"]
dojo..*
input,back,cancel,browse
input,back,cancel,browse
[/code]
那你应该这样配置
[code="java"]
dojo..*,^struts..*
input,back,cancel,browse
input,back,cancel,browse
然后你的action中就可以配置如下,就不会这样了
1024
[/code]
可以按如下方式配置你的action拦截器,不使用defaultStack。
[code="xml"]
1024
dojo..*
input,back,cancel,browse
input,back,cancel,browse
[/code]
lz:
一下几句可能对你了解defaultStack的使用有帮助
[list]
[*]如果在action中引用了任何拦截器,defaultStack拦截器栈将失效!
[*]解决方法很简单,将defaultStack配置进去即可
[/list]