struts2上传文件ServletFileUpload解析request为空的三种解决方案
struts上传为空的原因是struts2拦截器对混合表单进行拦截,将混合表单的request转换为了普通表单的请求。
解决办法1:
重写struts2拦截器对request的parser操作,具体实现如下
1)在struts2.xml里面定义bean
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest"
name="myRequestParser" class="org.app.myRequestParser.MyRequestParser"
scope="default" optional="true" />
class是自定义的类,里面可以什么都没有,但一定要重新parser函数。里面不写任何东西
2)在struts2.xml定义一个常量
<constant name="struts.multipart.handler" value="myRequestParser" />
解决办法2:
修改web.xml里面struts2拦截器配置,将mapping映射/*改为*.action
还有一种不算是解决办法,可能你的请求表单里面有个name名为名为name,目前未发现这种问题,重新定义下这个name