第一次研究FCKeditor花了我一天时间,真是头都快抓破了。。不过还好,最终还是做出来了。
流程:
加包:fckeditor-java-core-2.6.jar
fckeditor-java-core-2.6-javadoc.jar
fckeditor-java-core-2.6-sources.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.6.jar
slf4j-simple-1.5.8.jar
配置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>
编写代码:(这里有两种方法,提倡用第二种,第一种会带来不必要的麻烦)
引进js文件:
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
用js写控件:
<tr style="height: 300px;"> <td colspan="2"> <!-- <textarea rows="10" cols="80" name="docinfo.contents"></textarea> --> <script type="text/javascript"> var oFCKeditor = new FCKeditor('docinfo.contents');//传入参数为表单元素(由FCKeditor生成的input或textarea)的name oFCKeditor.BasePath='fckeditor/';//指定FCKeditor根路径,也就是fckeditor.js所在的路径 oFCKeditor.Height='100%'; oFCKeditor.ToolbarSets='Demo';//指定工具栏,注意是ToolbarSets oFCKeditor.Value='';//默认值 oFCKeditor.Create(); </script> </td> </tr>
在添加数据的时候,这个基本上没什么问题,但是如果修改也要用到FCK的话,就会出现问题。用过FCK的一定知道它保存的数据是含有html标签格式的内容,当我们用EL表达式这样写的话,就会出现"未结束的字符串常量"。
例如:(错误)
oFCKeditor.Value='${docinfo.contents}';
这是为什么呢,我想是因为我们存入数据库中的标签具有换行的功能。所以照成了本来应该一行写入的表达式却变了多条。这个问题我看了很多论坛,说是用截取的办法。
说实话,本人有点愚钝没有做出来,所以下面有种更简单的方法提供大家学习:
引入标签:
源代码:<%@ taglib uri="/struts-tags" prefix="s" %> <%@ taglib prefix="fck" uri="http://java.fckeditor.net" %>
<tr style="height:200px;"> <td>内容: <fck:editor instanceName="EditorDefault" width="100%" basePath="/fckeditor" inputName="docinfo.contents" value="${docinfo.contents}" > </fck:editor> </td> </tr>