1、如果struts2是
status2.3.4
在配置文件struts.xml里加上
<bean type= "org.apache.struts2.dispatcher.multipart.MultiPartRequest"
name= "myRequestParser" class= "com.icf.common.base.actions.RequestParseWrapper"
scope= "default" optional= "true " />
<constant name= "struts.multipart.handler" value= "myRequestParser" />
public class RequestParseWrapper extends JakartaMultiPartRequest {
public void parse(HttpServletRequest servletRequest, String saveDir)throws IOException{ }
}
2、如果struts2是
struts2.3.15.1 以后的版本
在struts2.3.15.1后的配置里,struts2的struts-default.xml 里把 struts.multipart.handler 改成了struts.multipart.parser在struts配置文件中加上
<bean type= "org.apache.struts2.dispatcher.multipart.MultiPartRequest"
name= "myRequestParser" class= "com.icf.common.base.actions.RequestParseWrapper"
scope= "default" optional= "true " />
<constant name= " struts.multipart.parser" value= "myRequestParser" />
创建一个自己的类RequestParseWrapper
public class RequestParseWrapper extends JakartaMultiPartRequest {
public void parse(HttpServletRequest servletRequest, String saveDir)throws IOException{
}
}
分析原因
struts2的源代码对request对象进行了封装,导致fileList = upload.parseRequest(request);获取不到上传的对象