struts2 上传文件 parseRequest()解析request为空 解决办法

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);获取不到上传的对象





你可能感兴趣的:(struts2,为空,parseRequest())