ckediteor 在配置好struts的基础上,再进行配置;关于struts2的配置这里就不在进行重复了。
https://cksource.com/ckfinder/download;
http://ckeditor.com/download // 这里有三个不同的版本可以使用;
struts2+ckeditor + ckfinder
ckeditor_4.5.3_full.zip
ckfinder_java_2.4.zip
CKEditor 3.6.6.2 for Java
2、拷贝ckeditor
ckeditor_4.5.3_full.zip /ckeditor
3、拷贝ckfinderCKFinderJava-2.4.war\ckfinder
拷贝在WebRoot路径;
4、引入jar;首先引的是ckfinder的jar包。(1)CKFinderJava-2.4.war\WEB-INF\lib 下;
去除两个commons jar;
(2)ckeditor-java-3.6.6.2.war\WEB-INF\lib 下的ckeditor-java-core-3.5.3.jar
5、引入config.xml修改
CKFinderJava-2.4.war\WEB-INF
enabled = true <baseDir></baseDir> <baseURL>/ckscxz/userfiles/</baseURL>6、修改web.xml 配置CKEditor的servlet等信息 struts2拦截 /* ,ckeditor的servlet优先被struts2拦截 二种方式: 1、修改struts2拦截设置 将/* 修改为*.action或*.do 2、自定义CKeditor的过滤器,让它来继承Struts2的过滤器FilterDispatcher 获得完整的http url的地址,然后判断URL地址中是否包含CKEditor的servlet 拦截规则"/ckfinder/core/connector/java /*/", 若包含,struts2就不拦截该URL请求,而直接转发,交给CKEditor的servlet来处理; 若不包含,则拦截器拦截该URL请求,由struts2来处理
7、ckeditor config.js配置
config.language = "zh-cn" ; config.image_previewText = ' ';config.filebrowserBrowseUrl = '/ckscxz/ckfinder/ckfinder.html' ;
config.filebrowserImageBrowseUrl = '/ckscxz/ckfinder/ckfinder.html?type=Images' ; config.filebrowserFlashBrowseUrl = '/ckscxz/ckfinder/ckfinder.html?type=Flash' ; config.filebrowserUploadUrl = '/ckscxz/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Files' ; config.filebrowserImageUploadUrl = '/ckscxz/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Images' ; config.filebrowserFlashUploadUrl = '/ckscxz/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Flash' ; config.filebrowserWindowWidth = '1000'; config.filebrowserWindowHeight = '700'; ---------------关于破解------------------ --图片预览文字替换ckeditor/config.js config.image_previewText = " "; ----------------------------------- --ckfinder/ckfinder.js --浏览服务器左下角信息不展示 下面代码注释 if (!D) this.dV().getChild(0).appendHtml(A || B || y != 4 ? t: u + "\x3c\142\x3e" + k.htmlEncode(a.ed) + "\x3c\057\142\x3e\x3c\x2f\x64\151\166\x3e"); ----------------------------------- --隐藏版权信息 找到<h4 class='message_content'> 改为<h4 style='display:none;' class='message_content'> ----------------------------------- --避免上传文件乱码,将上传文件名以时间戳命名 解决办法:修改源码FileUploadCommand.class getFileItemName方法这里讲下struts接收参数的问题;
1.使用Action的属性接收参数;
2.使用DOmainMoedl接收参数;
3.使用ModelDriven接收参数;
String[] s =filepath.split("\\\\"); 用字符串分割地址是这样子的;
regex为\\\\,因为在java中\\表示一个\,而regex中\\也表示\,所以当\\\\解析成regex的时候为\\。
struts 访问Servlet的API
在Servlet里我们有两个方法doget和dopost方法;
方法里有两个参数;
在Servlet里我们可以直接调用这两个参数;也就是活是存在的;
再看下struts2的Action的execute方法;
public String execute() throws Exception{ return SUCCESS;}
struts是没有提供任何servlet的api的;但是提供了三种方式去访问servlet API;
01. ActionContext;
02.实现 接口;
03.ServletActionContext;