Struts2结合CKEditor需要注意的地方

最近的项目中要使用富文本编辑器。没有过多的考虑,于是选择了CKEditor。但是在使用的时候发现,它与Struts2的配和尽然有点不默契。

问题是这样产生的:

1、配置Struts2时,是让Struts2拦截所有的action。


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

config
../config/struts.xml



struts2
/*


2、CKEditor的插入图片功能在回显预览的时候需要调用后台处理代码
……
//设置返回“图像”选项卡
String callbackUrl  =  ServletActionContext.getRequest().getContextPath() +"/fckImageReader.servlet? fold="+this.getFileType()+"&imageName="+fileName;
out.println("");

3、然后问题就会出现了。如果将CKEditor所学的处理请求写为.action交给Struts2处理,会得到错误结果。这就是Strus2与CKEditor的
     不默契之一。如果像上面描述的那样采取跳servlet的方式处理,那么Struts2又会来拦截这个请求,还是得不到想要的结果。于是大神
     来指导我了。大神A说:不让Struts2拦截所有的请求,改一下配置就ok。大神B说:更改CKEditor的请求servlet的后缀,那么Struts2
     就拦截不到了。

4、具体实验:
      
大神A的实验:


struts2
*.action


struts2
*.jsp

结果:搞定!
大神B的实验
……
/fckImageReader.servlet
……

结果:搞定!

5、注意:在CKEditor回调时,session会被置空。如果程序中有session的处理,那么一定要做判断,以避免出现NullPointException


你可能感兴趣的:(CKEditor)