1、信息: Unable to find ‘struts.multipart.saveDir‘ property setting. Defaulting to javax.servlet.context.tempdir
这是struts需要在struts.xml配置临时文件夹。
只需要在struts.xml的<struts></struts>中添加一下语句即可。
<constant name="struts.multipart.saveDir" value="/tmp"/>
原因:
1.struts.multipart.saveDir用于存放指定临时文件的文件夹,该配置在struts.properties文件中。例如:在struts.properties文件中加入如下代码:
struts.multipart.saveDir = /tmp
这样下次提交表单的时候就不会出现这个问题了!
2.如果没有用struts.properties文件,也可以在struts.xml中配置如下代码,效果一样:
<constant name="struts.multipart.saveDir" value="/tmp"/>
2、上传图片时如果提示“上传数据找不到”,则我们不能用struts自己的过滤器,我们要自己写一个,以下为步骤:
增加创建一个过滤器,用来过滤ueditor的上传请求:
1 package Filter; 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest; 10 import javax.servlet.ServletResponse; 11 import javax.servlet.http.HttpServletRequest; 12 13 import org.apache.struts2.dispatcher.StrutsRequestWrapper; 14 //由于UEditor图片不能上传自制的Filter过滤器 15 public class UeditorFilter implements Filter { 16 17 @Override 18 public void doFilter(ServletRequest req, ServletResponse res, 19 FilterChain chain) throws IOException, ServletException { 20 HttpServletRequest request = (HttpServletRequest) req; 21 String url = request.getRequestURI(); 22 23 if (decideURI(url)) { 24 chain.doFilter(new StrutsRequestWrapper((HttpServletRequest) req), res); 25 }else{ 26 chain.doFilter(req, res); 27 } 28 29 } 30 31 /** 32 * ueditor编辑器中的图片上传和文件上传 33 * @param url 34 * @return 35 */ 36 private boolean decideURI(String url){ 37 if(url.endsWith("imageUp.jsp")){ 38 return true; 39 }else if(url.endsWith("fileUp.jsp")){ 40 return true; 41 }//此处可能需要修改 42 return false; 43 } 44 45 @Override 46 public void destroy() { 47 48 } 49 50 @Override 51 public void init(FilterConfig filterConfig) throws ServletException { 52 53 } 54 55 }
UeditorFilter
由于最新的百度UEditor编辑器,上传图片不是使用的imageUp.jsp
所有的上传都是使用的controller.jsp,所以将if中的判断改为
if (url.endsWith("controller.jsp")) {
return true;
}
即可
注意还需要在web.xml中配置使用上面定义的过滤器,替换原来的那个默认过滤器,代码如下 :
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class>Filter.UeditorFilter</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>struts2</filter-name> 7 <url-pattern>/*</url-pattern> 8 </filter-mapping>
就此,问题得到解决
原文地址:https://www.cnblogs.com/hzb462606/p/9036483.html