ckeditor与struts结合的时候,需要注意Struts的filter将会处理上传文件,而导致无法正常上传文件
推荐解决方案,
重写struts的StrutsPrepareAndExecuteFilter
[code]
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);
}
}
}
[/code]
对应在web.xml中修改
[code]
<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>
[/code]
推荐解决方案,
重写struts的StrutsPrepareAndExecuteFilter
[code]
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);
}
}
}
[/code]
对应在web.xml中修改
[code]
<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>
[/code]