一、信息: Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.context.tempdirhtml
這是struts須要在struts.xml配置臨時文件夾。java
只須要在struts.xml的<struts></struts>中添加一下語句便可。web
<constant name="struts.multipart.saveDir" value="/tmp"/>apache
緣由:app
1.struts.multipart.saveDir用於存放指定臨時文件的文件夾,該配置在struts.properties文件中。例如:在struts.properties文件中加入以下代碼:jsp
struts.multipart.saveDir = /tmpide
這樣下次提交表單的時候就不會出現這個問題了!url
2.若是沒有用struts.properties文件,也能夠在struts.xml中配置以下代碼,效果同樣:spa
<constant name="struts.multipart.saveDir" value="/tmp"/>code
二、上傳圖片時若是提示「上傳數據找不到」,則咱們不能用struts本身的過濾器,咱們要本身寫一個,如下爲步驟:
增長建立一個過濾器,用來過濾ueditor的上傳請求:
<UeditorFilter.java>
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 import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; 15 //因爲UEditor圖片不能上傳自制的Filter過濾器 16 public class UeditorFilter extends StrutsPrepareAndExecuteFilter{ 17 18 @Override 19 public void doFilter(ServletRequest req, ServletResponse res, 20 FilterChain chain) throws IOException, ServletException { 21 HttpServletRequest request = (HttpServletRequest) req; 22 String url = request.getRequestURI(); 23 System.out.println(url); //驗證url,個人頁面url爲:/RoboBlogs/UEditor/jsp/controller.jsp 24 if (url.contains("/RoboBlogs/UEditor/jsp/")) { 25 //[RoboBlogs]爲項目名,[UEditor]爲jsp部署ueditor的文件夾,看我的實際狀況而定 26 System.out.println("使用自定義過濾器"); 27 chain.doFilter(req, res); 28 }else{ 29 System.out.println("使用默認過濾器"); 30 super.doFilter(req, res, chain); 31 } 32 33 } 34 35 36 37 38 }
注意還須要在web.xml中配置使用上面定義的過濾器,替換原來的那個默認過濾器,代碼以下 :