现在的位置: 首页 > 综合 > 正文

FCKeditor for jsp(常用设置与中文乱码的解决)

2013年09月03日 ⁄ 综合 ⁄ 共 4920字 ⁄ 字号 评论关闭

转载于:http://panjiangchuan.javaeye.com/blog/524921

 

通过配置文件设定fckeditor的配置
一:直接修改fckconfig.js文件
二:自定义配置文件,自定义项将覆盖fckconfig.js文件中的默认设置
(1):新建配置文件【即是普通的js文件】
例:在项目的根目录下新建myconfig.js文件
内容:
FCKConfig.AutoDetectLanguage= true ;
FCKConfig.DefaultLanguage= 'zh-cn' ;
......
(2):读取配置文件【由于发布项目的不确定性,自定义文件一般放入fckeditor文件夹下 FCKConfig.EditorPath代表fckeditor文件夹下】
1):修改fckconfig.js文件的FCKConfig.CustomConfigurationsPath = FCKConfig.EditorPath+'myconfig.js' ;
2):调用fckeditor的时候读取配置文件,新建FCKeditor对象oFCKeditor(推荐使用,对单个的编辑域起作用)
oFCKeditor.config["CustomConfigurationsPath"]=FCKConfig.EditorPath+"myconfig.js";
常见需要修改的配置:
(1):添加常见的中文字体:修改或者自定义配置文件的FontNames属性
例:FCKConfig.FontNames='宋体;楷体_GB2312;黑体;隶书;Times New Roman;Arial';
(2):设置工具条:修改或者自定义配置文件的ToolbarSets属性
例:FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
注:Basic:工具条的名称(调用时使用) 单引号内部 单词表示一个菜单项 -表示一个分隔符 /表示换行符【参照fckconfig.js中的ToolbarSets设置工具条】
(3):修改"回车"和"shift+回车"的换行行为:修改或者自定义配置文件的FontNames属性
例:FCKConfig.EnterMode = 'br' ;
FCKConfig.ShiftEnterMode = 'p' ;
注:EnterMode:回车行为 ShiftEnterMode:shift+回车行为 【他们的取值只能为p div br 三者之一】
(4):修改编辑区样式文件:修改或者自定义配置文件的EditorAreaCSS属性
例:FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
注:FCKConfig.BasePath指的是:fckeditor/editor文件夹。
(5):配置表情图片:修改或者自定义配置文件的SmileyPath SmileyImages SmileyColumns SmileyWindowWidth SmileyWindowHeight属性
例:FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 210 ;
注:SmileyPath:指定表情所在的文件夹 SmileyImages指定表情图片的名称 SmileyColumns指定每行显示表情的个数 SmileyWindowWidth SmileyWindowHeight表情列表的宽度和高度。修改fckeditor/editor/dialog/fck_smiley.html文件 注释掉dialog.SetAutoSize( true ) ;行 使之表情列表按照指定的宽度和高度显示,修改<body style="overflow: hidden">为<body style="overflow: auto">使表情列表出现滚动条,完全显示表情。
注意:JSP页面的BasePath指:fckeditor.js的路径,配置文件的BasePath指:fckeditor/editor文件夹 配置文件的EditorPath指:fckeditor文件夹下。
文件上传控制:
(1):文件类型的控制(分为四种类型 分别为:文件 图像 flash 媒体)【二者配置必须同步】
        1)配置自定义fckeditor配置文件(客户端配置 媒体没有客户端配置)
例:FCKConfig.LinkUploadAllowedExtensions = ".
(7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip)$" ;
    FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ;
    FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ;
        2)配置fckeditor.properties资源文件(服务器端配置),在资源文件中加入:
例:connector.resourceType.file.extensions.allowed = 
7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip
connector.resourceType.image.extensions.allowed = bmp|gif|jpeg|jpg|png
connector.resourceType.flash.extensions.allowed = swf|fla
connector.resourceType.media.extensions.allowed=aiff|asf|avi|bmp|fla|flv|gif|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|png|qt|ram|rm|rmi|rmvb|swf|tif|tiff|wav|wma|wmv
(2):文件大小的控制:同理修改Dispatcher.java文件
中文乱码解决方案:
(1):使用最新的fckeditor.java-2.5.bin.zip文件将不会出现上传中文文件名文件出现乱码。
(2):创建中文目录时出现乱码:修改net.fckeditor.connector包下的Dispatcher.class文件。
1):下载fckeditor-java-2.5-src.zip源文件。
2):在你的工程目录下新建net.fckeditor.connector包,复制fckeditor-java-2.5/java-core/src/main/java/net/fckeditor/connector/Dispatcher.java文件到该包下。【值得注意的是编辑该文件前一定先将6个jar文件拷贝到lib目录下】
3):编辑该文件 在doGet成员方法下找到:String newFolderNameStr = request.getParameter("NewFolderName");
     logger.debug("Parameter NewFolderName: {}",newFolderNameStr);
     改为:
     String newFolderNameStr = request.getParameter("NewFolderName");
     String temp= new String(newFolderNameStr.getBytes("iso8859-1"),"utf-8");
     newFolderNameStr = temp;
     logger.debug("Parameter NewFolderName: {}",newFolderNameStr);
4):解压fckeditor-java-core-2.5.jar文件,并部署你的项目,在部署后的classes文件夹下找到你编译好的Dispatcher.class文件替换 fckeditor-java-core-2.5.jar解压后的net.fckeditor.connector文件夹下的Dispatcher.class,并且重新打包该文件。
5):用改变后的fckeditor-java-core-2.5.jar文件代替原来的文件,重新部署。
(3):引用中文名称的图片不能正常显示:
1):修改服务器配置【不推荐使用,因为会使get传递的参数出现乱码 如:创建中文文件夹再次出现乱码】:修改Tomcat 6.0/conf/server.xml文件中服务器所对应的端口所对应的配置
例:我的tomcat的端口是:8080则该段配置则修改为:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
       URIEncoding="utf-8"/>
2):修改上传文件的文件名【使名称变为当前时间(也可以使用UUID构造名称)】避免出现中文:再次修改Dispatcher.java文件。
找到:doPost方法下的: String fileName = FilenameUtils.getName(uplFile.getName());
logger.debug("Parameter NewFile: {}", fileName);
修改为:
String fileName = FilenameUtils.getName(uplFile.getName());
String suffix = fileName.substring(fileName.lastIndexOf("."));
Calendar cad = Calendar.getInstance();
fileName = String.valueOf(cad.get(Calendar.YEAR))+String.valueOf(cad.get(Calendar.MONTH))+String.valueOf(cad.get(Calendar.DAY_OF_MONTH))+String.valueOf(cad.get(Calendar.HOUR_OF_DAY))+String.valueOf(cad.get(Calendar.MINUTE))+String.valueOf(cad.get(Calendar.SECOND));
fileName = fileName + suffix;
logger.debug("Parameter NewFile: {}", fileName);
3):同上进行编译和打包。

 

抱歉!评论已关闭.