List items = upload.parseRequest(request);
返回来的items里面始终没得值 。
在网上找了很多,一些说是form 没有加
enctype="multipart/form-data" method="post"或者
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> //应该修改为 <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
但是经过检查,都不存在这个问题。
最后结果是
<filter-mapping> <filter-name>EncodeFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
的问题 。
解决的方法是在EncodeFilter中增加以下判断
String image = request.getParameter("dir"); if(StringUtils.isBlank(image) || !image.equals("image")){ chain.doFilter(request, response); }else{ chain.doFilter(new StrutsRequestWrapper((HttpServletRequest) request), response); }