Struts+CKEditor+CKFinder JAVA版配置总结
来源:互联网 发布:华宇软件最新消息 编辑:程序博客网 时间:2024/06/07 11:28
CKEditor(FCKEditor)是一个很不错的开源在线文本编辑器,CKFinder为CKEditor提供了丰富的上传功能,在此只是总结一下在SSH环境下如何配置好这两个东东,关于一些再详细的配置步骤网上到处都是,google搜索一下就行了。
0.约定
(1)使用Eclipse建立了Dynamic Web project,已经配置好SSH(Struts+Spring+Hibernate)环境(包括Tomcat 7)
(2)以下xx代表项目名称
1.下载
使用版本如下:
CKEditor 4.1.2:http://ckeditor.com/download
CKFinder 2.3.1:http://cksource.com/ckfinder/download
以上CKEditor是免费的,CKFinder是DEMO,需要付费,但下载下来的文件时完整的,包括源文件,所以可以自行破解修改。为了支持JAVA,CKFinder可以选择JAVA版本下载,CKEditor还需要下载
CKEditor 3.6.4 for JAVA:http://download.cksource.com/CKEditor/CKEditor%20for%20Java/CKEditor%20for%20Java%203.5.3/ckeditor-java-core-3.5.3.zip
不过下载的是3.5.3版本,正常使用,不深究了。
2.简单配置
(1)解压所有文件,把里面的sample说明之类的统统删除,lang文件夹中只保留en和zh-cn,复制到项目文件夹下,CKEditor和CKFinder改名为xxedit和xxfinder把ckeditor-java-core-3.5.3和xxfinder/web-inf/lib下面的的所有包统统复制到xx/web-inf/lib,把ckfinder/meta-inf/context.xml和ckfinder/web-inf/config.xml(改名为xxfinder.xml)复制到项目中的meta-inf和web-inf的位置。如下图,红色处为项目名xx。
(2)配置xxfinder.xml(即ckfinder的config.xml)
<enabled>true</enabled> <baseURL>/xx/upload/</baseURL>(3)配置web.xml,使得struts仅拦截自己关心的目标,也支持CKFinder
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.js</url-pattern> </filter-mapping>
<servlet> <servlet-name>ConnectorServlet</servlet-name> <servlet-class>com.ckfinder.connector.ConnectorServlet</servlet-class> <init-param> <param-name>XMLConfig</param-name> <param-value>/WEB-INF/xxfinder.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ConnectorServlet</servlet-name> <url-pattern>/xxfinder/core/connector/java/connector.java</url-pattern> </servlet-mapping> <filter><filter-name>FileUploadFilter</filter-name><filter-class>com.ckfinder.connector.FileUploadFilter</filter-class> <init-param> <param-name>sessionCookieName</param-name> <param-value>JSESSIONID</param-value> </init-param> <init-param> <param-name>sessionParameterName</param-name> <param-value>jsessionid</param-value> </init-param></filter><filter-mapping><filter-name>FileUploadFilter</filter-name><url-pattern>/xxfinder/core/connector/java/connector.java </url-pattern></filter-mapping>(5)在index.jsp文件中插入如下语句(支持CKEditor以及与CKFinde的r整合,参阅http://docs.cksource.com/CKFinder_2.x/Developers_Guide/Java/CKEditor_Integration和http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Java/Integration):
<%@ taglib uri="http://ckeditor.com" prefix="ckeditor" %><%@ taglib uri="http://ckfinder.com" prefix="ckfinder" %> <!-- method要是post,否则会有乱码出现 --> <form action="index.jsp" method="post"> <p> <label for="editor1">Editor 1:</label> <textarea cols="80" id="editor1" name="editor1" rows="10"></textarea> </p> <p> <input type="submit" value="保存" /> </p> </form> <!-- 以下顺序不能颠倒 --> <ckfinder:setupCKEditor editor="editor1" basePath=/xx/xxfinder/" /> <ckeditor:replace replace="editor1" basePath=/xx/xxeditor/" />3.深入分析
2中叙述的大部分和网上介绍的类似,接下来又更进一步修改,碰到了一些问题,逐步加以解决。
(1)CKEditor修改
ckeditor.js修改文件名后,需要相应修改其文件中的ckeditor字段(注意需要大小写匹配),还需要修改ckeditor-java-core-3.5.3中的TagHelper.createCKEditorIncJS。
(2)CKFinder修改
去掉CKFinder的版权信息和Help
需要修改ckfinder.js中
1)
p="\074\144\x69\x76\040\143\x6c\141\163\163\x3d\047\x76\151\145\167\x20\164\x6f\157\154\137\x70\x61\x6e\145\x6c\047\x20\x73\x74\171\154\145\x3d\x27\160\141\x64\x64\x69\156\147\x3a\062\160\x78\073\144\x69\163\x70\154\141\171\072\142\154\157\x63\x6b\x20\041\151\155\x70\157\162\164\x61\x6e\164\x3b\160\157\163\151\x74\x69\157\156\072\163\164\x61\x74\151\143\x20\041\151\x6d\160\x6f\x72\x74\x61\156\x74\073\143\x6f\x6c\x6f\x72\072\142\x6c\141\x63\153\040\x21\x69\x6d\x70\x6f\x72\164\x61\156\164\073\x62\141\143\x6b\x67\x72\157\x75\x6e\144\x2d\143\157\x6c\x6f\162\072\167\150\151\164\145\040\041\151\155\x70\157\162\164\x61\156\164\x3b\047\076",q="\x3c\057\144\151\x76\x3e"后面的r=p+"版权信息可以修改"+q,s=p+"删除其中内容"。
2)找到'Upload','Refresh','Settings','Maximize','Help'改成到'Upload','Refresh','Settings','Maximize',''
(3)CKFinder中的Java版源文件修改
上传中文文件会出现乱码,可以多种处理方法,这里简单的修改一下源代码,捕获上传文件名并且修改为以日期时间的文件名,代码如下:
FileUploadCommand.java
import java.util.Date;import java.text.SimpleDateFormat;…… private String getFinalFileName(final String path, final String name) {// File file = new File(path, name);// int number = 0;//// String nameWithoutExtension = FileUtils.getFileNameWithoutExtension(name, false);// Pattern p = Pattern.compile("^(AUX|COM\\d|CLOCK\\$|CON|NUL|PRN|LPT\\d)$", Pattern.CASE_INSENSITIVE);// Matcher m = p.matcher(nameWithoutExtension);// boolean protectedName = m.find() ? true : false;// while (true) {// if (file.exists() || protectedName) {// number++;// StringBuilder sb = new StringBuilder();// sb.append(FileUtils.getFileNameWithoutExtension(name, false));// sb.append("(" + number + ").");// sb.append(FileUtils.getFileExtension(name, false));// this.newFileName = sb.toString();// file = new File(path, this.newFileName);// this.errorCode =// Constants.Errors.CKFINDER_CONNECTOR_ERROR_UPLOADED_FILE_RENAMED;// protectedName = false;// } else { return this.newFileName;// }// } Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); this.newFileName = sdf.format(date)+"." + FileUtils.getFileExtension(name); }在调试时候,还会出现报错,这里修改如下:
ThumbnailCommand.java
response.addHeader("Content-Disposition", "attachment; filename='" + this.fileName + "'");//反斜杠变成单引号(4)maven编译打包CKFinder,mvn package
4.方向
CKEditor和CKFinder有许多参数固化,不利于日后扩展和集成部署,需要进一步整合,以有利于项目的集成。
参考:
[1] http://www.cnblogs.com/yuepeng/archive/2013/04/01/2992097.html
[2] http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Java/Integration
[3] http://docs.ckeditor.com/#!/guide/dev_installation
- Struts+CKEditor+CKFinder JAVA版配置总结
- java配置ckeditor与ckfinder
- JAVA+CKEditor+CKFinder 配置异常解决方案
- ckeditor+ckfinder配置用法
- ckeditor/ckfinder配置
- ckeditor+ckfinder配置用法
- ckfinder+ckeditor文件配置
- Java版的CKEditor + CKFinder图片上传
- 网站整合CKEditor和CKFinder(Java版)
- 网站整合CKEditor和CKFinder(Java版)
- CKEditor/CKFinder一些特殊配置
- CKEditor+CKFinder+asp.net配置
- CKEditor+CKFinder+asp.net配置
- CKFINDER CKEDITOR配置与使用
- CKEditor与CKFinder的配置
- CKEditor+CKFinder+ASP.NET配置
- CKEditor+CKFinder+jsp整合配置
- ckfinder + ckeditor 路径配置详解
- 家有小学生的,赶紧收了,很有用!
- [iOS]Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
- SEO常用指令的用法技巧以及出现的问题
- [LeetCode]Remove N-th Node from the end of the list
- Wicket SeverAndClientTimeFilter
- Struts+CKEditor+CKFinder JAVA版配置总结
- rpm & yum
- 第58天的交易(2013-6-19)(-100)(-77.17)
- Linux程序设计--进程和信号
- 发布一个便捷工具【SlxCom】
- PAT (Basic Level) Practise (中文)—— 1007. 素数对猜想
- KDD: dev number
- JDBC驱动
- 选择一个flex框架