ckeditor等在线编辑器于struts结合无法上传图片问题

ckeditor与struts结合的时候,需要注意Struts的filter将会处理上传文件,而导致无法正常上传文件
推荐解决方案,
重写struts的StrutsPrepareAndExecuteFilter
import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;

/**
 * 
 * 解决图片上传bug的struts过滤器
 *
 */
public class MyStruts2Filter extends StrutsPrepareAndExecuteFilter{

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest) arg0;
		String uri = request.getRequestURI();
		if(uri.endsWith("/ckfinder/core/connector/java/connector.java")){//其他在线编辑器也可能存在此情况,依此方法解决
			chain.doFilter(arg0, arg1);
		}else{
			super.doFilter(arg0, arg1, chain);
		}
	}

	
}



对应在web.xml中修改
<filter>
        <filter-name>struts2</filter-name>
<!--        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>-->
        <filter-class>MyStruts2Filter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

你可能感兴趣的:(struts,ckeditor)