FCKeditor 2.6.4 在java中的应用配置
1.FCKeditor 介绍
FCKeditor 这个开源的HTML 文本编辑器可以让web 程序拥有如MS Word 这样强大的编辑功能,.FCKeditor 支持当前流行的浏览器。
2.准备工作:
环境:winddows XP、tomcat6.0、JDK1.6
下载:
1):FCKeditor_2.6.4.zip
地址: http://nchc.dl.sourceforge.net/sourc...itor_2.6.4.zip
2):fckeditor-java-2.4.1-bin.zip (JAVA支持包)地址 http://nchc.dl.sourceforge.net/sourc...-2.4.1-bin.zip
3)slf4j-1.5.6.zip 地址 : http://slf4j.org/dist/slf4j-1.5.6.zip
3.安装:
下面以jsp为例:
分别解压之后,我们可以得到一个fckeditor和fckeditor-java-2.4.1两个文件夹。fckeditor文件夹下是需要调用的页面和js文件等等,有各种版本,无所谓啦,我们之需要jsp就够了。将文件加全部复制到工程目录下等待调用即可。
注意:有点麻烦的是导包的问题。我们一共需要5个包:commons-fileupload-1.2.1.jar,commons-io- 1.3.2.jar,fckeditor-java-core-2.4.1.jar,slf4j-api-1.5.6.jar,slf4j- simple-1.5.6.jar或slf4j-jdk14-1.5.6.jar。
上面前四个包都可以在fckeditor-java-2.4.1文件夹下面找到,但是第五个却要另外去找,这点我非常不理解,为什么不放在一起。
如果没有的话编译时就会出现如下错误信息:
严重: Servlet /fckeditorDemo threw load() exception
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
当然版本或许不同,以上的版本是截止2009-02-4的最新版本。如果想要最新版本,可以在slf4j的官网 http://www.slf4j.org/download.html)下到。但是要注意,截止到2009-2-4,slf4j官方最新版本是 1.5.6,但是fckeditor提供的slf4j-api却是1.5.2版本,如果两个版本不一样的话,你将会在控制台看到如下的消息:
严重: Servlet /Java threw load() exception
java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class
org.slf4j.LoggerFactory
所以千万要注意版本一致问题,上面已经用红色醒目标出了。如果你实在觉得下载很麻烦,那就到这里下载吧:
这是我做了一个例子。
4.配置
1)在共程目录src/下新建一个文件fckeditor.properties,添加内容:connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl 保存即可。
2)修改web.xml,用来提供上传功能支持,
5.应用
在工程目录WebRoot下新建index.jsp,result.jsp两个文件,
index.jsp:
result.jsp
在IE地址中输入:http://localhost:8080/FCKtest OK,成功了!
6.不足之处
世界上没有绝对完美的女子(不知道你是否发现了完美的女孩,错了不要打我),FCK也一样。
1) 在文本框中输入中文提交后得到的中文乱码。
解决办法:
Result.JSP中来转码:
new String(request.getParameter(“content”).getByte(iso-8859-1),”UTF-8”)
试验下,嘿嘿,”汉化”成功!
2) 上传中文名图片后保存的中文图片名乱码
解决办法:下载www.pjwqh.cn.jar包,替换以前下载的fckeditor-java-core-2.4.jar包,
OK,上传中文图片名显示正常了,
3) 点击浏览服务器后,选择刚上传的中文图片,图片在预览窗口中不能显示
解决办法:
修改TOMCAT安装目录config下的server.xml文件,在<Connector/>标签内加上 URIEncoding="UTF-8"。
OK,中文图片正常显示。
4) 关与FLASH的上传
A.上传中文文件名FLASH时,有时候弹出没有权限,或者是文件类型错误,有时候上传正常。
B.上传英文或者数字名FLASH时,窗口一直处与等待状态,过一会儿关闭窗口,再通过浏览服务器按钮可以看到FLASH已经成功上传。
C.有时候如过上传成功了,预览窗口也不能播放。
D.有时候无论使用什么语言的文件名都可以上传成功。
但只要你是使用的英文或则数字文件名,就能100%上传。
所以关于这个问题估计还是编码引起的。
5)。FCKeditor2.6.2上传文件功能与Struts 2 不兼容的问题。
解决办法:
让Struts2仅处理*.action的请求。修改配置文件web.xml:
将Struts2处理所有web请求的过滤器配置
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
改为:仅处理.action或.jsp请求
<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>
备注:以上配置文件的更改会造成Struts2 标签在页面中不显示
应该在web.xml文件中加入以下配置:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>
FCKeditor 这个开源的HTML 文本编辑器可以让web 程序拥有如MS Word 这样强大的编辑功能,.FCKeditor 支持当前流行的浏览器。
2.准备工作:
环境:winddows XP、tomcat6.0、JDK1.6
下载:
1):FCKeditor_2.6.4.zip
地址: http://nchc.dl.sourceforge.net/sourc...itor_2.6.4.zip
2):fckeditor-java-2.4.1-bin.zip (JAVA支持包)地址 http://nchc.dl.sourceforge.net/sourc...-2.4.1-bin.zip
3)slf4j-1.5.6.zip 地址 : http://slf4j.org/dist/slf4j-1.5.6.zip
3.安装:
下面以jsp为例:
分别解压之后,我们可以得到一个fckeditor和fckeditor-java-2.4.1两个文件夹。fckeditor文件夹下是需要调用的页面和js文件等等,有各种版本,无所谓啦,我们之需要jsp就够了。将文件加全部复制到工程目录下等待调用即可。
注意:有点麻烦的是导包的问题。我们一共需要5个包:commons-fileupload-1.2.1.jar,commons-io- 1.3.2.jar,fckeditor-java-core-2.4.1.jar,slf4j-api-1.5.6.jar,slf4j- simple-1.5.6.jar或slf4j-jdk14-1.5.6.jar。
上面前四个包都可以在fckeditor-java-2.4.1文件夹下面找到,但是第五个却要另外去找,这点我非常不理解,为什么不放在一起。
如果没有的话编译时就会出现如下错误信息:
严重: Servlet /fckeditorDemo threw load() exception
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
当然版本或许不同,以上的版本是截止2009-02-4的最新版本。如果想要最新版本,可以在slf4j的官网 http://www.slf4j.org/download.html)下到。但是要注意,截止到2009-2-4,slf4j官方最新版本是 1.5.6,但是fckeditor提供的slf4j-api却是1.5.2版本,如果两个版本不一样的话,你将会在控制台看到如下的消息:
严重: Servlet /Java threw load() exception
java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class
org.slf4j.LoggerFactory
所以千万要注意版本一致问题,上面已经用红色醒目标出了。如果你实在觉得下载很麻烦,那就到这里下载吧:
这是我做了一个例子。
4.配置
1)在共程目录src/下新建一个文件fckeditor.properties,添加内容:connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl 保存即可。
2)修改web.xml,用来提供上传功能支持,
- # <servlet>
# <servlet-name>Connector</servlet-name>
# <servlet-class>
# net.fckeditor.connector.ConnectorServlet
# </servlet-class>
# <load-on-startup>1</load-on-startup>
# </servlet>
# <servlet-mapping>
# <servlet-name>Connector</servlet-name>
# <url-pattern>
# /fckeditor/editor/filemanager/connectors/*
# </url-pattern>
# </servlet-mapping>
5.应用
在工程目录WebRoot下新建index.jsp,result.jsp两个文件,
index.jsp:
- 1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2. <%@ taglib uri="http://java.fckeditor.net" prefix="FCK" %>
3. <%
4. String path = request.getContextPath();
5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6. %>
7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
8. <html>
9. <head>
10. <base href="<%=basePath%>">
11. <title>FCKeditor.java2.4 for FCKeditor2.6.3Beate text</title>
12. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
13. <meta http-equiv="pragma" content="no-cache">
14. <meta http-equiv="cache-control" content="no-cache">
15. <meta http-equiv="expires" content="0">
16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17. <meta http-equiv="description" content="This is my page">
18. </head>
19. <body>
20. <form action="result.jsp" method="post">
21. <FCK:editor instanceName="content">
22. <jsp:attribute name="value">
23. 您的内容.....
24. </jsp:attribute>
25. </FCK:editor>
26. <input type="submit" value="提交">
27. </form>
28.
29. </body>
30. </html>
result.jsp
- 1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2. <%
3. String path = request.getContextPath();
4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
5. %>
6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
7. <html>
8. <head>
9. <base href="<%=basePath%>">
10. <title>My JSP 'result.jsp' starting page</title>
11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
12. <meta http-equiv="pragma" content="no-cache">
13. <meta http-equiv="cache-control" content="no-cache">
14. <meta http-equiv="expires" content="0">
15. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
16. <meta http-equiv="description" content="This is my page">
17. </head>
18. <body>
19. <%=request.getParameter("content") %>
20. </body>
21. </html>
在IE地址中输入:http://localhost:8080/FCKtest OK,成功了!
6.不足之处
世界上没有绝对完美的女子(不知道你是否发现了完美的女孩,错了不要打我),FCK也一样。
1) 在文本框中输入中文提交后得到的中文乱码。
解决办法:
Result.JSP中来转码:
new String(request.getParameter(“content”).getByte(iso-8859-1),”UTF-8”)
试验下,嘿嘿,”汉化”成功!
2) 上传中文名图片后保存的中文图片名乱码
解决办法:下载www.pjwqh.cn.jar包,替换以前下载的fckeditor-java-core-2.4.jar包,
OK,上传中文图片名显示正常了,
3) 点击浏览服务器后,选择刚上传的中文图片,图片在预览窗口中不能显示
解决办法:
修改TOMCAT安装目录config下的server.xml文件,在<Connector/>标签内加上 URIEncoding="UTF-8"。
OK,中文图片正常显示。
4) 关与FLASH的上传
A.上传中文文件名FLASH时,有时候弹出没有权限,或者是文件类型错误,有时候上传正常。
B.上传英文或者数字名FLASH时,窗口一直处与等待状态,过一会儿关闭窗口,再通过浏览服务器按钮可以看到FLASH已经成功上传。
C.有时候如过上传成功了,预览窗口也不能播放。
D.有时候无论使用什么语言的文件名都可以上传成功。
但只要你是使用的英文或则数字文件名,就能100%上传。
所以关于这个问题估计还是编码引起的。
5)。FCKeditor2.6.2上传文件功能与Struts 2 不兼容的问题。
解决办法:
让Struts2仅处理*.action的请求。修改配置文件web.xml:
将Struts2处理所有web请求的过滤器配置
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
改为:仅处理.action或.jsp请求
<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>
备注:以上配置文件的更改会造成Struts2 标签在页面中不显示
应该在web.xml文件中加入以下配置:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>