ckeditor等编辑器和struts结合,无法上传图片问题

来源:互联网 发布:离散数学 视频 知乎 编辑:程序博客网 时间:2024/06/01 12:02
ckeditor与struts结合的时候,需要注意Struts的filter将会处理上传文件,而导致无法正常上传文件
推荐解决方案,
重写struts的StrutsPrepareAndExecuteFilter
Java代码 复制代码 收藏代码
  1. import java.io.IOException;  
  2.   
  3. import javax.servlet.FilterChain;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.ServletRequest;  
  6. import javax.servlet.ServletResponse;  
  7. import javax.servlet.http.HttpServletRequest;  
  8.   
  9. import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;  
  10.   
  11. /** 
  12.  *  
  13.  * 解决图片上传bug的struts过滤器 
  14.  * 
  15.  */  
  16. public class MyStruts2Filter extends StrutsPrepareAndExecuteFilter{  
  17.   
  18.     @Override  
  19.     public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException {  
  20.         HttpServletRequest request = (HttpServletRequest) arg0;  
  21.         String uri = request.getRequestURI();  
  22.         if(uri.endsWith("/ckfinder/core/connector/java/connector.java")){//其他在线编辑器也可能存在此情况,依此方法解决  
  23.             chain.doFilter(arg0, arg1);  
  24.         }else{  
  25.             super.doFilter(arg0, arg1, chain);  
  26.         }  
  27.     }  
  28.   
  29.       
  30. }  


对应在web.xml中修改
Java代码 复制代码 收藏代码
  1. <filter>  
  2.         <filter-name>struts2</filter-name>  
  3. <!--        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>-->  
  4.         <filter-class>MyStruts2Filter</filter-class>  
  5.     </filter>  
  6.   
  7.     <filter-mapping>  
  8.         <filter-name>struts2</filter-name>  
  9.         <url-pattern>/*</url-pattern>  
  10.     </filter-mapping>