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