前几天晚上找了好久关于这方面的资料,虽然很多,但或多或少都存在的很多的这样那样的不足,最关键的是有很多时候不能完善的使用出他的 优越功能来,为此很苦恼。到昨天我通过网络上许多不是很全面的解析说明,终于重组了一套可行的 在JSP中应用 方法!特在本BLOG做下记录,以防以后遇到类似的问题无法找到晚上的解决办法!
【全文】
@工作前的准备
我使用的版本是FCKeditor_2.4.2.zip【组件的主文件包】,FCKeditor.Java 2.3.zip【这里面提供了标签库和图片上传的jar】。这些都可以在http://www.fckeditor.net 网站下载到!
@配置
- 新建工程compass,在WebRoot文件夹下新建文件夹FCKeditor(用来存放FCKeditor相关文件,记得大小写要一致,因为如果你需要改变的话变化的文件比较多,而且还不确定是否改全了,一开始我就是把他全部小写,但结果还是出问题了!)
- 将FCKeditor_2.4.2包中的 editor 文件夹和fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml 这四个文件放到项目中的 FCKeditor 目录。
- 将FCKeditor.Java -2.3.zip 包中的 /web/WEB-INF/lib 下的两个 jar 文件到项目的 WebRoot/WEB-INF/lib 目录
- 将FCKeditor.Java -2.3.zip 包中的 /src 下的 FCKeditor.tld 文件到项目的 WebRoot/WEB-INF 目录
- 在 WebRoot 目录下新建 UserFiles 文件夹,在此文件夹下新建 Image、 Flash 、File、Media四个文件夹 ,他们分别用来存放上传的图片、动画、文件、媒体文件
- 修改fckconfig.js组件配置文件【说明一下,我下面说明的是我已经改好了的,你可以在配置文件里搜索等号前面的信息来确定某一项做更改】:
A、FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/silver/' ;
这传是组件的样式模板,好确定你到底需要使用哪中样式,这个根据你自己的喜好更改,
B、FCKConfig.DefaultLanguage = 'zh-cn' ;
这个是确定你需要使用哪中语言,设定成上面的表示使用简体中文;
C、更改文件浏览的路径:
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;
FCKConfig.FlashBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;
把相应的信息屏蔽掉,使用上面的
D、更改上传文件的路径
FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;
把相应的信息屏蔽掉,使用上面的
7. 修改 web.xml 文件,加入以下内容 :
在FCKeditor.Java -2.3.zip 包中有个web/WEB-INF/WEB.XML,把<web-app></web-app>这个节点里面的内容复制到你的工程里面的相应的未知,值得说明的地方是:
<servlet-name>Connector</servlet-name>
<servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<!-- 此为文件浏览路径,可以只有选择修改,但切记不可改成“/[工程名]/UserFiles/”因为他目前已经是在工程的根目录下来运行的,故如果要把默认浏览的文件目录为webroot/upload目录,之需要改变成:/upload/,即可 -->
<param-value>/UserFiles/</param-value>
</init-param>
<init-param>
<!--传 说 中 的 分 割 线 -->
<servlet-name>SimpleUploader</servlet-name>
<servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<!-- 此为文件上传路径,可以只有选择修改,但切记不可改成“/[工程名]/UserFiles/”因为他目前已经是在工程的根目录下来运行的,故如果要把上传的文件放到webroot/upload目录下,之需要改变成:/rpload/,即可 -->
<param-value>/UserFiles/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<!-- 记得要改变这里,把FALSE改变成TRUE,这个是是否启用上传功能 -->
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<!--传 说 中 的 分 割 线 -->
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>
<!-- 别忘记上面和下面加粗部分的代码,我就是在这里搞错了很多时候-->
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>
@优化
以上都是把组件嵌入进工程的 配置过程,下面我们来把组件压缩优化一下,把无用的文件给剔除掉:
删除 /WebRoot/FCKeditor/editor/filemanager/browser/default/connectors 目录下所有的文件,这些是用来浏览文件的,对于jsp的话是使用了 servlet 来处理,所以这些文件都是多余的
删除 /WebRoot/FCKeditor/editor/filemanager/upload 目录下所有的文件
删除 WebRoot/FCKeditor/editor/lang 目录下不需要的语言,如保留中文【zh-cn.js】和英文[EN.js]还有 fcklanguagemanager.js 文件
删除 /WebRoot/FCKeditor/editor/skins 目录下不需要的皮肤文件,有三种皮肤,可根据需要进行删除
@JSP页面上的使用
★首先在test.jsp页面的页头加上标签使用语句【不需要做目录调整,已经切实可行】:
<%@ taglib uri="/WEB-INF/FCKeditor.tld" prefix="FCK" %>
★然后在页面的相应位置增加调用语句,对于FCK标签,里面还可以增加很多属性,当然也可以不加,注意下面粗体的地方,我下面使用了2个比较常用的属性,一个是高度的调整,另一个是组件风格
<FCK:editor id="EditorDefault" basePath="/docoa/FCKeditor/" height="400" skinPath="/docoa/FCKeditor/editor/skins/silver/" >
This is FCKeditor demo!
</FCK:editor>
★接收参数可以这么写
<%=request.getParameter("EditorDefault")%>