下面的param在拦截器里面,action取值取不到,而如果放到拦截器外面,在action就能取到值?哪位高手可以帮小弟讲解一下原因?
           <interceptor-ref name="fileUpload">
           <param name="allowedTypes">image/bmp,image/gif,image/jpg,image/pjpeg</param>           <param name="maximumSize">2000000</param>           </interceptor-ref>

解决方案 »

  1.   

    这个param本身就是提供给拦截器使用的,不是提供给action使用的。
    所以action取不到。在<interceptor>里面的param是提供给拦截器使用,用于设置拦截器里面的相关参数的,不是给action用的
      

  2.   


    那我就不明白了,拦截器不就是对action操作进行处理,那它里面的<param name="allowedTypes">image/bmp,image/gif,image/jpg,image/pjpeg</param>应该是对上传文件的类型进行判断,然而运行后它报空指针
    java.lang.NullPointerException
    com.school.web.action.upload.UpLoad.execute(UpLoad.java:58)
    如果
      <param name="allowedTypes">image/bmp,image/gif,image/jpg,image/pjpeg</param><interceptor-ref name="fileUpload">
                       <!-- 配置允许上传的文件大小 -->
               <param name="maximumSize">2000000</param>
            </interceptor-ref>
    像这样放在外面,就可以对上传的类型进行判断,那这是怎么回事?像param放在外面,拦截器不就没什么意义了?望指教~~!
      

  3.   

    建议你看下fileUploadInterceptor的源码,以及struts2怎么处理放到interceptor的param配置。param放到interceptor和放到action之间是两个完全不同的概念,尽管都叫同一个配置名字。