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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值