ckeditor java 使用教程_Java上CKEditor集成指南
系统需求
请注意,你至少需要JRE 1.4和Servlet的2.5/JSP 2.1使用整合。
安装
将CKEditor添加到您的应用程序,有两步的过程:
下载独立CKEditor和放置在Web应用程序目录。
下载并安装服务器端集成(用于Java CKEditor)。
添加客户端CKEditor
去的下载CKEditor的最新版本。将它放置在你的web应用程序的目录里。
添加标签库(ckeditor-java-core)
当你想添加CKEditor库,你可以选择使用Maven或手动添加。
使用Maven2
如果您的应用程序使用Maven,你可以添加以下的依赖在你的pom.xml文件里:
com.ckeditor
ckeditor-java-core
3.x.y
请注意,3.xy表示版本,例如 3.6。当CKEditor版本添加到Maven中,将自动下载指定版本。
没有Maven
如果你不使用Maven,你必须手动添加CKEditorjar库。在CKEditor下载网站,下载的ckeditor-java-core- 3.xy* .jar文件,并把它放在在你的/ WEB-INF/lib目录。
*请注意,3.xy表示一个CKEditor发布的版本。
在页面上使用标签
要在JSP页面中使用标签,你需要在页面中声明CKEditor标记库:
在以下的实例中CKEditor取代HTML中textarea的元素。除非你正在使用的标签(将在后面介绍),你首先需要的是一个带有HTMLtextarea的元素的JSP页面。
更换所选择的textarea元素
我们的目的是这样的:让我们假设有个页面看起来像这样:
Editor 1:
正如在上面的代码中所看到的,该页面的table元素的属性包含sample_posteddata.jsp这个值,这是一个在样例中应用的web.xml映射,当页面被提交,链接到servlet,输出出CKEditor的内容。
接下来,你必须在页面中添加CKEditor标签(在这种情况下)。建议添加在底部 BODY>标记之前:
请注意,上面的CKEditor标签包含两个属性:
replace-一个CKEditor实例映射到将取代的HTML textarea元素的name或ID的
basePath-CKEditor主目录的路径。
本文件的目的:假设CKEditor是在/ ckeditor /目录(http://example.com/ckeditor/)。
请注意,也可用其他标记属性。请参阅第一个完整的描述通用标签属性的。
下面是我们的示例页面的完整的源代码:
Editor 1:
更换所有的textarea元素
标签用Editor实例取代文件中的所有textarea的元素。它可以选择只更换一个CSS Class的值与CKEditor的className属性的值相等的textarea元素。
这个标签用CKEditor实例替换所有的Class为MyClass的textarea元素。
创建一个CKEditor实例
标签创建一个CKEditor实例。
"basePath="/ckeditor/"editor="editor1"value="Type here" />
对于这个么有HTMLtextarea元素的标签,必须在当前页面上创建并立即用CKEditor实例取代。上面的代码包含以下元素:
basePath-包含到CKEditor主目录的路径。
editor-是内部的textarea元素的名称。
value-是默认的textarea元素值。
textareaAttributes-是一个java.util.Map 存储在Map keys里面的textarea的属性名,而属性值则存为Map values。例如:
attr = new HashMap();
attr.put("rows", "8");
attr.put("cols", "50");%>
常见的标记属性
下面的列表列出一些常用的标签属性。
basePath
basePath-包含CKEditor主目录的路径。
例如,如果在CKEdito下r的http://example.com/3rdparty/ckeditor/中,basePath属性应设置为/ 3rdparty/ckeditor /。
config
config -此参数包含CKEditor配置对象。有关该属性可用选项的列表,请参阅JavaScript的
将配置选项存储在CKEditorConfig对象的。他们使用添加addConfigValue方法:
settings.addConfigValue("width","500");%>
" />
这种方法的第一个参数始终是一个字符串形式的配置选项的名称。第二个可以使用String,Boolean,Number,List,或Map对象其中一个。无论使用何种类型,CKEditor将尝试将每个值映射到一个可以接受的形式。例如,下面的代码:
settings.addConfigValue("toolbar","[[ 'Source', '-', 'Bold', 'Italic' ]]");%>
等同于
List>list= newArrayList>();
ListsubList= newArrayList();
subList.add("Source");
subList.add("-");
subList.add("Bold");
subList.add("Italic");
list.add(subList);
settings.addConfigValue("toolbar", list);%>
新的CKEditor 3.6工具栏语法
在CKEditor 3.6中,工具栏按钮可以组织成组。每个组都有自己的名字和它包含的一组按钮。这个新的定义可以表现在两个方面。
下面的代码:
settings.addConfigValue("toolbar","[{name: 'document', items: ['Source', '-', 'NewPage']},
'/', {name: 'styles', items: ['Styles','Format']} ]");
%>
等同于:
ListmainList= newArrayList();
HashMaptoolbarSectionMap= newHashMap();
ListsubList= newArrayList();
subList.add("Source");
subList.add("-");
subList.add("NewPage");
toolbarSectionMap.put("name","document");
toolbarSectionMap.put("items", subList);
mainList.add(toolbarSectionMap);
mainList.add("/");
toolbarSectionMap= newHashMap();
subList= newArrayList();
subList.add("Styles");
subList.add("Format");
toolbarSectionMap.put("name","styles");
toolbarSectionMap.put("items", subList);
mainList.add(toolbarSectionMap);
settings.addConfigValue("toolbar", mainList);%>
timestamp
timestamp-此参数存储一个特定的CKEditor的发行的值,这有助于避免浏览器缓存的问题,当一个新的客户端CKEditor版本上传到服务器时,它的价值就体现了。
initialized
initialized - 设置这个值为true意味着ckeditor.js脚本已经包含在页面里面了,有没有必要再次添加。另一方面,将它设置为false,意味着,ckeditor.js脚本应该被添加到页面中。
Event
Event-此参数存储客户端的事件监听器列表这是com.ckeditor.EventHandler类型。
例如:
首先,创建一个EventHandler实例。然后,您可以通过使用事件的addEvent方法,其中第一个参数是CKEditor事件关键字,第二个是JavaScript函数中的一个连接字符串。
eventHandler.addEvent("instanceReady","function (ev) { alert(\"Loaded:\"+ ev.editor.name); }");%>
为了使用页面上的事件,可以添加以下表达式:
"/>
globalEvents
globalEvents-此参数存储着可被所有CKEditor实例使用的是客户端事件监听器列表,是个GlobalEventHandler类型。
globalEventHandler.addEvent("dialogDefinition","function (ev) { alert(\"Loading dialog window:\"+ ev.data.name); }");%>
在一个Java类中设置配置选项
configuration, events和global events可以被创建在一个scriptlet实例,或在一个独立的Java类。下面是一个例子:
package com.ckeditor.samples;
import java.util.ArrayList;
import java.util.List;
import com.ckeditor.CKEditorConfig;
import com.ckeditor.EventHandler;
import com.ckeditor.GlobalEventHandler;
public class ConfigurationHelper {
public static CKEditorConfig createConfig() {
CKEditorConfig config = new CKEditorConfig();
List> list = new ArrayList>();
List subList = new ArrayList();
subList.add("Source");
subList.add("-");
subList.add("Bold");
subList.add("Italic");
list.add(subList);
config.addConfigValue("toolbar", list);
config.addConfigValue("width","500");
return config;
}
public static EventHandler createEventHandlers() {
EventHandler handler = new EventHandler();
handler.addEvent("instanceReady","function (ev) { alert(\"Loaded: \" + ev.editor.name); }");
return handler;
}
public static GlobalEventHandler createGlobalEventHandlers() {
GlobalEventHandler handler = new GlobalEventHandler();
handler.addEvent("dialogDefinition","function (ev) { alert(\"Loading dialog window: \" + ev.data.name); }");
return handler;
}
}
要在JSP页面上访问这个类,你可以使用以下表达式:
"events="" />
ckeditor java 使用教程_Java上CKEditor集成指南相关推荐
- java邮件教程_Java发送Email/邮件
使用Java应用程序发送邮件是很简单的,需要安装JavaMail API 和Java Activation Framework (JAF) 在机器上. 可以从Java的标准网站上下载JavaMail( ...
- java nio教程_Java NIO教程
java nio教程 1.简介 Java NIO是Java 1.4引入的一个库. 自从Java NIO推出以来,它提供了另一种方法来处理I / O和网络事务. 它被认为是Java网络和Java IO库 ...
- java设计模式教程_Java设计模式教程
java设计模式教程 课程大纲 架构和计算机科学中的设计模式是记录特定专业领域中设计问题的解决方案的正式方法. 这个想法是由建筑师Christopher Alexander在建筑领域引入的,并已被修改 ...
- java反射教程_Java反射教程
java反射教程 在本教程中,我主要编写一些示例来介绍Java反射可以做什么. 希望它可以给您这个概念的概述. 请留下您的评论以寻求建议. 什么是反射? 简而言之,反射是程序在运行时检查和修改对象的结 ...
- java web 教程_Java Web服务教程
java web 教程 Welcome to the Java Web Services Tutorial. Here we will learn about web services, useful ...
- java io教程_Java IO教程
java io教程 Java provides several classes in java.io package to work with text, stream data, and file ...
- java map 教程_Java Map接口
Java Map接口 在本教程中,我们将学习Java Map接口及其方法. Java collections框架的Map接口提供了Map数据结构的功能. 它实现了Collection接口. map的工 ...
- java数据结构教程_Java数据结构
Java实用程序包提供的数据结构非常强大,可以执行各种功能. 这些数据结构由以下接口和类组成 - Enumeration BitSet Vector Stack Dictionary Hashtabl ...
- java 通信 教程_Java实现简单的socket通信教程
今天学习了一下java如何实现socket通信,感觉难点反而是在io上,因为java对socket封装已经很完善了. 今天代码花了整个晚上调试,主要原因是io的flush问题和命令行下如何运行具有pa ...
- java导出文件教程_Java文件教程
File类的对象是文件或目录的路径名的抽象表示. 创建文件 我们可以从以下创建一个File对象 - 一个路径名 一个父路径名和子路径名 一个URI (统一资源标识符) 可以使用File类的以下构造函数 ...
最新文章
- SegmentFault 专访 | AlloyTeam 2015 前端技术大会讲师圆桌
- 赛道一出,今后无需再熬夜
- 编程之美2.2 不要被阶乘吓倒
- Eclipse调试Android开发工具ADB
- javamail实现邮箱验证功能
- c语言float判断相等,c/c++ 比较两个浮点数相等
- 【程序设计】浅析编程语言的区间为何常是左闭右开
- python登录界面实现密码在明文与星号间切换_两个API让星号密码框显示成明文
- 整理各个平台的访问入口及快速推文的方法
- Java 算法 矩阵乘法
- python去除图像光照不均匀_【转载】光照不均匀图像分割技巧
- python编写交互界面查分_python小习题:查分数 - 李金龙
- Oracle 10g 报ORA-12514错误
- 4图纸 rust_安诺伊模具丨机加工图纸有英语看不懂?不怕!史上最全翻译都在这...
- 五、hive-1.2.1安装
- donet 微服务开发 学习-熔断降级 Polly
- Spark大数据面试题1
- 什么是电容式传感器?其工作原理是怎样的?
- 企业微信发送信息异常的临时处理方案
- Access-Control-Allow-Credentials
热门文章
- 【nn.Parameter】Pytorch特征融合自适应权重设置(可学习权重使用)
- 计算机课题推荐人意见,课题申请推荐人意见怎么写
- 洛谷T30768 动感超人520
- 小熊派开发板STM32L431_BearPi_LiteOS_E53_ST1调测GPS+2G心得(附代码修正版)
- 在qt中出现During startup program exited with code 0xc0000135错误原因
- 无线专题 WAN口和LAN口、WLAN和WiFi区别
- 弹出启动windows安全中心服务器,Win10每次开机都弹出启用Windows安全中心服务怎么办?...
- linux下分配磁盘空间,linux如何分配磁盘空间
- 疫情期间的中老年众生相:刷抖音/云买菜/直播购物,加速“触网”
- GoLang panic 用法