2023年12月8日发(作者:)
struts2上传文件异常:multipartrequest(jakarta)-[unknownlocation]
Struts2上传文件异常: eException:
Unable to load bean
artRequest
(jakarta) - [unknown location]
在测试Struts2权威指南介绍的struts2文件上传,发现如下异常:
eException: Unable to load bean
artRequest
(jakarta) - [unknown location]
再回去仔细看该章节,发现是自己粗心了,忘记加所需要的两个除struts2外的jar文件.所加jar文件所图所示:
Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,而struts2的filter拦截了上传文件的动作,拦截器代码是这样写的:
//
public HttpServletRequest wrapRequest(HttpServletRequest
request, ServletContext servletContext) throws IOException {
// don't wrap more than once
if (request instanceof StrutsRequestWrapper) { return request;
}
String content_type = tentType();
if (content_type != null &&
content_f("multipart/form-data") != -1) {
MultiPartRequest multi =
getContainer().getInstance();
request = new MultiPartRequestWrapper(multi,
request, getSaveDir(servletContext));
} else {
request = new StrutsRequestWrapper(request);
}
return request;
}
注意MultiPartRequest multi =
getContainer().getInstance();这句是上传文件时拦截器实现所需要的,出错的原因是所不到的实现类.这个类在上传框架jar文件中.这是文件上传fileupload解析器。
因此,如果需要使用Struts2的文件上传功能,则需要在web应用中增加两个JAR文件,即和。将这个包或是包的最新版本放在工程的lib目录下,即解决以上异常问题,成功实现文件的上传.


发布评论