说白了就是怎么在jsp中用FCKEditor:
我用的是最新的2.6.4
配置包比较麻烦,参照下面:
A. FCKeditor_2.6.3.zip //主角,在
http://www.fckeditor.net/download 即可下载。
B. fckeditor-java-core-2.4.1.jar 在
http://www.fckeditor.net/download 找到FCKeditor.Java,点下面的超链接进入下载页面,找到fckeditor-java-core-2.4.1.jar ,下载即可。有必要把fckeditor-java-2.4.1-src.zip 源文件包也下载下来,需要里面一个文件ConnectorServlet.java,下文要用它来解决中文乱码和上传文件大小限制用。
C. slf4j-api-1.5.6.jar
D. slf4j-jdk14-1.5.6.jar //C和D这两个jar驱动包可以在
http://www.slf4j.org/download.html页面的slf4j-1.5.6.zip压缩包里或取。
E. commons-io-1.4.jar
F. commons-fileupload-1.2.1.jar //E和F这两个jar驱动包可以在
http://commons.apache.org/ 下载到。
G. xalan.jar
H. serializer.jar //G和H这个jar驱动包用于解析XML,都包含在xalan-j_2_7_0-bin-2jars.zip中,可以在
http://apache.seekmeup.com/xml/xalan-j下载到。
在Tomcat的webapps目录下新建文件夹tdy218,作为一个Web服务目录。新建一个upload文件夹作为上传的文件的存放目录;然后将FCKeditor_2.6.3.zip中的fckediter文件夹解压到tdy218服务目录下,将那5个jar驱动包放置到lib下,如下图所示的目录结构:
[img]http://p.blog.csdn.net/images/p_blog_csdn_net/tdy218/EntryImages/20090101/sdir.jpg" alt="" width="138" height="118[/img]
一定要装H包,不然上传图片的时候浏览服务器会包XML解析错误。
在web.xml注册servlet:
<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>
<!-- Do not wrap this line otherwise Glassfish will fail to load this file -->
<url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
</servlet-mapping>
添加属性文件fckeditor.properties
connector.userFilesPath=/upload //设置图片和Flash文件的保存位置,当你上传一张图片时,编辑器会自动新建一个 upload文件,在upload自动新建一个image目录用于保存图片,flash文件会自动保存到upload/flash目录下。
connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl
###此处不写入资源文件则默认放在upload目录下###
#connector.resourceType.file.path
#connector.resourceType.image.path
#connector.resourceType.flash.path
#connector.resourceType.media.path
####注意:allowed和denied只能写一个或者不写(使用系统默认),不能同时写,不然会提示错误invalid file type.
connector.resourceType.file.extensions.allowed=|jpg|gif|png|rar|zip|txt|doc|wma|wmv|mp3|flv|swf|
#connector.resourceType.file.extensions.denied=|com|exe|jsp|html|htm|shtml|bat|
connector.resourceType.media.extensions.allowed=|wma|wmv|mp3|flv|swf|
#connector.resourceType.media.extensions.denied=|com|exe|jsp|html|htm|shtml|bat|
connector.resourceType.image.extensions.allowed=|jpg|png|gif|
#connector.resourceType.image.extensions.denied=|com|exe|jsp|html|htm|shtml|bat|
connector.resourceType.flash.extensions.allowed=|swf|
#connector.resourceType.flash.extensions.denied=|com|exe|jsp|html|htm|shtml|bat|
记得修改fckconfig.js里的"var _FileBrowserLanguage = 'php';var _QuickUploadLanguage = 'php';"中的"php"为"jsp"。
测试页面:
<%@ page contentType="text/html; charset=gbk" language="java" %>
<html>
<head>
<style type="text/css">
<!--
.STYLE1
{
font-size: 16px;
}
-->
</style>
<script src ="fckeditor/fckeditor.js"></script>
<script language="javascript" type="text/javascript">
window.onload = function ()
{
var oFCKeditor = new FCKeditor("myTextArea") ;
oFCKeditor.BasePath = "fckeditor/";
oFCKeditor.Width = "755";
oFCKeditor.Height = "300";
oFCKeditor.ToolbarSet = "Default";
oFCKeditor.Config["SkinPath"] = "skins/silver/";
oFCKeditor.ReplaceTextarea();
}
</script>
</head>
<body>
<form name="myform" method="post" action="target.jsp" id="myform">
<p>文章标题:
<input type="text" name="title">
</p>
<p>文章类型:
<select name="type">
<option value="z">党务思政</option>
<option value="z">在线访谈</option>
<option value="z">绝对好书</option>
<option value="z">咨询范围</option>
</select>
</p>
<p>文章正文:</p>
<textarea name="myTextArea"></textarea>
<p><br>
<input type="reset" class="STYLE1" value="重置">
<input type="submit" class="STYLE1" value="提交">
</p>
</form>
</body>
</html>
target.jsp
<%@ page contentType ="text/html;charset=gbk" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.TimeZone" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%
String title = new String(request.getParameter("title").getBytes("ISO-8859-1"),"gbk");
String type = new String(request.getParameter("type").getBytes("ISO-8859-1"),"gbk");
String content = new String(request.getParameter("myTextArea").getBytes("ISO-8859-1"),"gbk");
out.println("文章标题:"+title+"<br><br>\n"+"文章类型:"+type+"<br><br>\n"+"文章内容:"+content);
%>
其他参数设置:
AutoDetectLanguage=true/false 自动检测语言
BaseHref="" 相对链接的基地址
ContentLangDirection="ltr/rtl" 默认文字方向
ContextMenu=字符串数组,右键菜单的内容
CustomConfigurationsPath="" 自定义配置文件路径和名称
Debug=true/false 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容
EnableSourceXHTML=true/false 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML
EnableXHTML=true/false 是否允许使用XHTML取代HTML
FillEmptyBlocks=true/false 使用这个功能,可以将空的块级元素用空格来替代
FontColors="" 设置显示颜色拾取器时文字颜色列表
FontFormats="" 设置显示在文字格式列表中的命名
FontNames="" 字体列表中的字体名
FontSizes="" 字体大小中的字号列表
ForcePasteAsPlainText=true/false 强制粘贴为纯文本
ForceSimpleAmpersand=true/false 是否不把&符号转换为XML实体
FormatIndentator="" 当在源码格式下缩进代码使用的字符
FormatOutput=true/false 当输出内容时是否自动格式化代码
FormatSource=true/false 在切换到代码视图时是否自动格式化代码
FullPage=true/false 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
GeckoUseSPAN=true/false 是否允许SPAN标记代替B,I,U标记
IeSpellDownloadUrl=""下载拼写检查器的网址
ImageBrowser=true/false 是否允许浏览服务器功能
ImageBrowserURL="" 浏览服务器时运行的URL
ImageBrowserWindowHeight="" 图像浏览器窗口高度
ImageBrowserWindowWidth="" 图像浏览器窗口宽度
LinkBrowser=true/false 是否允许在插入链接时浏览服务器
LinkBrowserURL="" 插入链接时浏览服务器的URL
LinkBrowserWindowHeight=""链接目标浏览器窗口高度
LinkBrowserWindowWidth=""链接目标浏览器窗口宽度
Plugins=object 注册插件
PluginsPath="" 插件文件夹
ShowBorders=true/false 合并边框
SkinPath="" 皮肤文件夹位置
SmileyColumns=12 图符窗列数
SmileyImages=字符数组 图符窗中图片文件名数组
SmileyPath="" 图符文件夹路径
SmileyWindowHeight 图符窗口高度
SmileyWindowWidth 图符窗口宽度
SpellChecker="ieSpell/Spellerpages" 设置拼写检查器
StartupFocus=true/false 开启时FOCUS到编辑器
StylesXmlPath="" 设置定义CSS样式列表的XML文件的位置
TabSpaces=4 TAB键产生的空格字符数
ToolBarCanCollapse=true/false 是否允许展开/折叠工具栏
ToolbarSets=object 允许使用TOOLBAR集合
ToolbarStartExpanded=true/false 开启是TOOLBAR是否展开
UseBROnCarriageReturn=true/false 当回车时是产生BR标记还是P或者DIV标记
我在这里没用到上传图片功能,关于该功能的其它问题,如上传不支持中文名等。