拦截器的重名使用问题

来源:互联网 发布:网络数据库和搜索引擎 编辑:程序博客网 时间:2024/06/05 17:27

<interceptor-ref name="fileUpload">

        <param name="allowedTypes" >text/plain,application/xml</param>

</interceptor-ref>

<interceptor-ref name="defaultStack"></interceptor-ref>

如果显式配置Struts2自己的缺省拦截器一定要写在“defaultStack”前,否则“fileUpload”拦截器不会执行拦截。因为Struts2中如果某个拦截器执行拦截时发现自己已经执行过,第二个乃至之后同名的拦截器都不会再执行。

这里因为“defaultStack”拦截器栈中包含了“fileUpload”拦截器,而“fileUpload”拦截器已经执行拦截了,则不会再执行拦截。如果把“defaultStack”拦截器栈放在“fileUpload”拦截器前配置,则只执行“defaultStack”拦截器栈中的“fileUpload”拦截器,这里没有定义“allowedTypes”,因为Struts2默认的是支持所有文件类型,所以它会支持所有文件类型的文件上传,因此再设定“allowedTypes”也就没有任何意义。

0 0
原创粉丝点击