特别提示:如果你使用官方下载的demo包,请用FCKeditor_2.6.3包替换掉其中的editor目录,因为我个人在做的时候就走了弯路,把demo包拷过来怎么做都不能向action传值,最后换成FCKeditor_2.6.3后成功解决问题。简而言之,就是按demo中的配置方法,但所用的包是FckEditor2.6.3和FckEditor for java 2.4,如果把demo包拷过来可能会出现一些问题,切记!
个人在配置的过程中还出现了英文为乱码的问题(中文没有问题),其实解决办法很简单:修改FCKeditor下的FckConfig.js文件,找到FCKConfig.ProcessHTMLEntities配置项,将其值改为 false;即可!
由于FckEditor for java 2.4相对于2.3而言做了许多改变,这些改变使得我们的Fckeditor配置起来更方便。例如:
基础包名从:com.fredck.FCKeditor 改为 net.fckeditor.
文件上传SimpleUploaderServle整合到了ConnectorServlet里面,WEB,XML的配置就简单多了,下面通过一个实例说明配置详细步骤
1、首先登陆www.fckeditor.net/download下载FCKeditor的最新版本,需要下载2个压缩包,一个是基本应用。另一个是在为在jsp下所准备的配置。
最新版本为:FckEditor2.6.3和FckEditor for java 2.4
FCKeditor 2.6.3下载地址:sourceforge.net/project/downloading.php
具体下载地址:http://easynews.dl.sourceforge.net/sourceforge/fckeditor/FCKeditor_2.6.3.zip
FCKeditor for Java 下载地址:sourceforge.net/project/downloading.php
具体下载地址:http://switch.dl.sourceforge.net/sourceforge/fckeditor/fckeditor-java-2.4-bin.zip(发行版,如果需要源码或者demo包请另行下载)
请下载demo包,否则会出现留言中那位朋友的错误!
下载之后分别为:FCKeditor_2.6.3.zip 和 fckeditor-java-2.4-bin.zip(fckeditor-java-demo-2.4.war)将它们分别解压。
2、首先在MyEclipse(或者其他的IDE)下建立一个新项目例如:FckedtiorTest 即http://localhost:8080/FckeditorTest
现在将解压后的FCKeditor_2.6.3.zip 里面的fckeditor文件夹拷贝到当前的项目文件夹里面。我的demo项目目录结构如下:
3、配置web.xml。配置文件如下,这就是全部了,其他的不需要再配置,由于SimpleUploaderServle整合到了 ConnectorServlet里面,所以文件上传等都不需要再配置。
<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>
4、在src目录下面建立fckeditor.properties资源文件,在里面写入这么一行“connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl”
5、下面写测试页面:
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.fckeditor.net" prefix="FCK" %> <html> <head> <title>FckEditor测试</title> </head> <body style="text-align: center;"> <div style="text-align: center;width: 600pt"> <h2>FckEditor测试</h2> <hr> <form action="ShowData.jsp" method="post"> <FCK:editor instanceName="test" height="400pt"> <jsp:attribute name="value"> 这里是 <a href="http://hi.baidu.com/huqiwen">数据测试</a> </jsp:attribute> </FCK:editor> <input type="submit" value="提交"/> <input type="reset" value="重置"/> </form> </div> </body> </html>
显示数据的页面:ShowData.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <head> <title>FCKeditor - 显示数据</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <% request.setCharacterEncoding("UTF-8"); String data = request.getParameter("test"); %> <body> <h1>FCKeditor - 显示数据</h1> <hr/><br /> <%=data%> </body> </html>
6、结果截图
index.jsp
ShowData.jsp
6、给FckEditor瘦身
删除fckeditor目录下面所有以“_”开头的文件或者文件夹,像"_samples"、"_documentation.html“等
删除fckeditor目录下面除了,fckconfig.js fckpackage.xml fckstyles.xml fcktemplates.xml外的所有文件,当然要保留editor文件夹
删除fckeditor/editor/lang目录下面除了en.js、 zh-cn.js外的所有文件
删除fckeditor/editor/filemanager目录下面的connectors文件夹
删除editor/skins目录下面除了default下面的文件夹,这个里面是皮肤,共有三种,可以在fckconfig.js里面设置。
- FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
- FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
- FCKConfig.EditorAreaStyles = '' ; // 编辑区的样式表风格
- FCKConfig.ToolbarComboPreviewCSS =''; //工具栏预览CSS
- FCKConfig.DocType = '' ;//文档类型
- FCKConfig.BaseHref = ''; // 相对链接的基地址
- FCKConfig.FullPage = false ; //是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
- FCKConfig.StartupShowBlocks = false ;//决定是否启用"显示模块"
- FCKConfig.Debug = false ;//是否开启调试功能
- FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; //皮肤路径
- FCKConfig.PreloadImages=... //预装入的图片
- FCKConfigFCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //插件路径
- FCKConfig.AutoDetectLanguage = true ; //是否自动检测语言
- FCKConfig.DefaultLanguage = 'zh-cn' ; //默认语言
- FCKConfig.ContentLangDirection = 'ltr' ; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左
- FCKConfig.ProcessHTMLEntities = true ; //处理HTML实体
- FCKConfig.IncludeLatinEntities = true ; //包括拉丁文
- FCKConfig.IncludeGreekEntities = true ;//包括希腊文
- FCKConfig.ProcessNumericEntities = false ;//处理数字实体
- FCKConfig.AdditionalNumericEntities = '' ; //附加的数字实体
- FCKConfig.FillEmptyBlocks = true ; //是否填充空块
- FCKConfig.FormatSource = true ; //在切换到代码视图时是否自动格式化代码
- FCKConfig.FormatOutput = true ; //当输出内容时是否自动格式化代码
- FCKConfig.FormatIndentator = ' ' ; //当在源码格式下缩进代码使用的字符
- FCKConfig.StartupFocus = false ; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上
- FCKConfig.ForcePasteAsPlainText = false ; //是否强制粘贴为纯文件内容
- FCKConfig.AutoDetectPasteFromWord = true ; //是否自动探测从word粘贴文件,仅支持IE
- FCKConfig.ShowDropDialog = true ;//是否显示下拉菜单
- FCKConfig.ForceSimpleAmpersand = false ;//是否不把&符号转换为XML实体
- FCKConfig.TabSpaces = 0 ;//按下Tab键时光标跳格数,默认值为零为不跳格
- FCKConfig.ShowBorders = true ;//合并边框
- FCKConfig.SourcePopup = false ;//弹出
- FCKConfig.ToolbarStartExpanded = true ;//启动fckeditor工具栏默认是否展开
- FCKConfig.ToolbarCanCollapse = true ;//是否允许折叠或展开工具栏
- FCKConfig.IgnoreEmptyParagraphValue = true ;//是否忽略空的段落值
- FCKConfig.FloatingPanelsZIndex = 10000 ;//浮动面板索引
- FCKConfig.HtmlEncodeOutput = false ;//是否将HTML编码输出
- FCKConfig.TemplateReplaceAll = true ;//是否替换所有模板
- FCKConfig.ToolbarLocation = 'In' ;//工具栏位置,
- FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
- FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
- FCKConfig.BaseHref = ''; // 相对链接的基地址
- FCKConfig.Debug = true/false; // 是否开启调试功能,当调用FCKDebug.Output()时,会在调试窗中输出内容
- FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/'; // 设置皮肤
- FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言
- FCKConfig.DefaultLanguage = 'zh-cn' ; // 设置默认语言
- FCKConfig.ContentLangDirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右
- FCKConfig.FillEmptyBlocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代
- FCKConfig.FormatSource = true/false; // 切换到代码视图时,是否自动格式化代码
- FCKConfig.FormatOutput = true/false; // 当输出内容时是否自动格式化代码
- FCKConfig.FormatIndentator = ""; // 当在“源码格式”下缩进代码使用的字符
- FCKConfig.GeckoUseSPAN = true/false; // 是否允许SPAN标记代替B,I,U标记
- FCKConfig.StartupFocus = true/false; // 开启时是否FOCUS到编辑器
- FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本
- FCKConfig.ForceSimpleAmpersand = true/false; // 是否不把&符号转换为XML实体
- FCKConfig.TabSpaces = 0/1; // TAB是否有效
- FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数
- FCKConfig.ShowBorders = true/false; // 是否合并边框
- FCKConfig.ToolbarStartExpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现
- FCKConfig.ToolBarCanCollapse = true/false; // 是否允许展开折叠工具栏
- FCKConfig.ToolbarSets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏
- FCKConfig.EnterMode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br
- FCKConfig.ShiftEnterMode = 'br'; // 编辑器中Shift+回车,在代码中生成,可选为p | div | br
- FCKConfig.ContextMenu = 字符串数组; // 右键菜单的内容
- FCKConfig.FontColors = ""; // 文字颜色列表
- FCKConfig.FontNames = ""; // 字体列表
- FCKConfig.FontSizes = ""; // 字号列表
- FCKConfig.FontFormats = ""; // 文字格式列表
- FCKConfig.StylesXmlPath = ""; // CSS样式列表的XML文件的位置
- FCKConfig.TemplatesXmlPath = ""; // 模版的XML文件位置
- FCKConfig.SpellChecker = "ieSpell/Spellerpages"; // 拼写检查器
- FCKConfig.IeSpellDownloadUrl = ""; // 下载拼写检查器的网址
- FCKConfigFCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/'; // 表情文件存放路径
- FCKConfig.SmileyImages = ''; // 表情文件名称列表,具体参考默认设置
- FCKConfig.SmileyColumns = 8; // 表情窗口显示表情列数
- FCKConfig.SmileyWindowWidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整
- FCKConfig.SmileyWindowHeight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整
- FCKConfig.FullPage = true/false; // 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
- 上传设置
- var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
- var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php[/code]
- //第一个是文件浏览器使用的语言,第二个快速上传使用的语言,改成你需要的
- FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
- FCKConfig.LinkUploadDeniedExtensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"
- //这是两个允许和拒绝上传的文件类型列表
- FCKConfig.ImageBrowser = false ;是否在插入图片功能里面启用服务器文件浏览功能
- FCKConfigFCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=ImageConnector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
- Type=Image 表示文件类型是image这会使文件浏览器定位到文件上传路径/image/文件夹下面
- FCKConfig.FlashBrowser = false ;是否在插入flash功能中启用服务器文件浏览功能
- FCKConfig.LinkUpload = false ;是否启用插入链接的快速上传功能
- FCKConfig.ImageUpload = false ;是否启用图片快速上传功能
- FCKConfig.FlashUpload = false ;是否启用flash上传功能