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

来源:互联网 发布:java认证考试费 编辑:程序博客网 时间:2024/05/17 07:43

1、如果struts2是

status2.3.4

配置文件struts.xml里加上

?

1

2

3

4

<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"  

/>

?

1

2

3

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配置文件中加上

?

1

2

3

4

<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  

?

1

2

3

4

public

class

RequestParseWrapper 
extends

JakartaMultiPartRequest   {

p<span></span>ublic
void

parse(HttpServletRequest   servletRequest,   String   saveDir)
throws 

IOException{  

        }   

}

分析原因


struts2的源代码对request对象进行了封装,导致fileList = upload.parseRequest(request);获取不到上传的对象

0 0
原创粉丝点击