FCKeditor2.6 for JSP 配置方法(转)

本文详细介绍了如何在Java Web项目中集成FCKeditor富文本编辑器,并解决在Struts2框架下上传图片的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先登陆www.fckeditor.net/download下载FCKeditor的最新版本,需要下载2个压缩包,一个是基本应用,另一个是在为在jsp下所准备的配置。

      FCKeditor 2.6 下载地址:sourceforge.net/project/downloading.php

      FCKeditor.Java 下载地址:sourceforge.net/project/downloading.php

下载之后分别为:FCKeditor_2.6.zipFCKeditor-2.3.zip 将它们分别解压。

 

2、首先在Eclipse下建立一个新项目例如:test    即http://localhost:8080/test

     在项目中新建文件夹 FCKeditor,然后将解压后的FCKeditor_2.6下fckeditor里面的editor、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml拷贝到FCKeditor目录下

      将解压后的FCKeditor-2.3文件夹中web/WEB-INF/lib下的包拷贝到test项目的lib中。

      将FCKeditor-2.3文件夹下src下的FCKeditor.tld拷贝到test项目的WEB-INF下。

 

3、将WEB-INF下的web.xml 加入如下内容:

     <servlet>
       <servlet-name>Connector</servlet-name>
       <servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
       <init-param>
           <param-name>baseDir</param-name>
           <param-value>/UserFiles/</param-value>
       </init-param>
       <init-param>
           <param-name>debug</param-name>
           <param-value>true</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet>
       <servlet-name>SimpleUploader</servlet-name>
       <servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
       <init-param>
           <param-name>baseDir</param-name>
           <param-value>/UserFiles/</param-value>
       </init-param>
       <init-param>
           <param-name>debug</param-name>
           <param-value>true</param-value>
       </init-param>
       <init-param>
           <param-name>enabled</param-name>
           <param-value>true</param-value>
       </init-param>
       <init-param>
           <param-name>AllowedExtensionsFile</param-name>
           <param-value></param-value>
       </init-param>
       <init-param>
           <param-name>DeniedExtensionsFile</param-name>
           <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
       </init-param>
       <init-param>
           <param-name>AllowedExtensionsImage</param-name>
           <param-value>jpg|gif|jpeg|png|bmp</param-value>
       </init-param>
       <init-param>
           <param-name>DeniedExtensionsImage</param-name>
           <param-value></param-value>
       </init-param>
       <init-param>
           <param-name>AllowedExtensionsFlash</param-name>
           <param-value>swf|fla</param-value>
       </init-param>
       <init-param>
           <param-name>DeniedExtensionsFlash</param-name>
           <param-value></param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>

<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>

 4、修改FCKeditor文件夹下的fckeditor.js

 

      修改第50行的FCKeditor.BasePath。

改之后:

50 FCKeditor.BasePath = 'FCKeditor/' ;

 

5、修改FCKeditor文件夹下的fckconfig.js

     修改FCKConfig.DefaultLanguage、FCKConfig.LinkBrowserURL、FCKConfig.ImageBrowserURL、FCKConfig.FlashBrowserURL、

改之后:

FCKConfig.DefaultLanguage   = 'zh-cn' ;

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" ;

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;

FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;

FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;

 

6、default.jsp内容如下:

<%@ page language="java" contentType="text/html; charset=gb2312"
	pageEncoding="gb2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="fck" uri="/WEB-INF/FCKeditor.tld"%>
<%request.setCharacterEncoding("gb2312");%>
<html>
<head>
<title>新闻管理</title>
<body>
<form name="gamenewsform" method="post" >
<table cellpadding="2" cellspacing="1" border="0" width="100%"
	align="center">
	
	<tr>
		<td width="19%" align="right" class='td1'><strong> 新闻标题:</strong><font
			color='#FF0000'>*</font></td>
		<td width="81%" class='td1'><input name='productName' type='text'
			size='40'><span id="check2"></span></td>
	</tr>

	
	<tr>
		<td width="19%" align="right" class='td1'><strong> 文章内容:</strong><font
			color='#FF0000'>*</font></td>
		<td width="81%" class='td1'><fck:editor id="contentinfo"
			height="400" width="100%" toolbarSet="Default"
			imageBrowserURL="../filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"
			linkBrowserURL="../filemanager/browser/default/browser.html?Connector=connectors/jsp/connector"
			flashBrowserURL="../filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"
			imageUploadURL="../filemanager/upload/simpleuploader?Type=Image"
			linkUploadURL="../filemanager/upload/simpleuploader?Type=File"
			flashUploadURL="../filemanager/upload/simpleuploader?Type=Flash">
		</fck:editor> <span id="check4"></span></td>
	</tr>
	

	<tr align="center">
		<td colspan="2" class='td1'><input type='button' value=' 添 加 '
			onclick='dosubmit()'> <input type="button" value=" 取 消 "
			onclick="window.location.href='shopinfo_selectShopInfoNews.action'"></td>
	</tr>
</table>
</form>
</html>

 

7,如果你使用的是struts2.0框架。上传图片则会报错,如下:

java.lang.NullPointerException
	at com.fredck.FCKeditor.uploader.SimpleUploaderServlet.doPost(SimpleUploaderServlet.java:142)

 

这是struts2.0拦截器的问题,将web.xml 文件下的:

<!-- FilterDispatcher用来初始化Struts2 并且处理所用的web请求 -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

改为

<!-- FilterDispatcher用来初始化Struts2 并且处理所用的web请求 -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.action</url-pattern>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>

 OK!!可以上传了!!!

这个是一个我修改过的fckeditor for jsp 的jar包的源代码,是fckeditor-2.3的,我修改了ConnectorServlet.java和SimpleUploaderServlet.java两个文件 我在这两个文件中都是加了一个静态变量encoding,private static String encoding;保存项目中的编码, 若在web.xml文件中没有给这个变量传值的话,默认是gb2312,如下代码if(encoding.isEmpty()){encoding="gb2312";},在ConnectorServlet.java的doGet与doPost的开头部分加入request.setCharacterEncoding(encoding);将请求的字符集编码设置成项目中的编码,在ConnectorServlet.java和SimpleUploaderServlet.java两个文件中的DiskFileUpload upload = new DiskFileUpload();后面加入upload.setHeaderEncoding(encoding);告诉FileUpload组件处理时的编码为项目编码,在FileItem中,用getString(encoding),这项设置可以解决获取的表单字段为乱码的问题,所以在每个FileItem实例后面都执行一次getString(encoding),就告诉FileItem在取值时用的编码是encoding所设置的编码。如在ConnectorServlet.java和SimpleUploaderServlet.java两个文件中的 FileItem item后面加上一句item.getString(encoding);在FileItem uplFile后面加上一句uplFile.getString(encoding); 把Tomcat安装目录下/server/lib里的catalina-ant.jar复制到项目的/WEB-INF/lib下。打开build.xml,修改property name="catalina.home"成Tomcat的安装目录。修改taskdef name="deploy"、taskdef name="list"、taskdef name="reload"、taskdef name="undeploy"如下: <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"> <classpath refid="compile.classpath"></classpath> </taskdef> <taskdef name="list" classname="org.apache.catalina.ant.ListTask"> <classpath refid="compile.classpath"></classpath> </taskdef> <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"> <classpath refid="compile.classpath"></classpath> </taskdef> <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"> <classpath refid="compile.classpath"></classpath> </taskdef> 然后在Eclipse的Outline窗口中运行Ant的dist,就会生成的新的FCKeditor-2.3.jar。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值