文档章节

j2ee 简单网站搭建:(十一)ckeditor 控件使用入门

b
 binux
发布于 2017/08/29 19:02
字数 728
阅读 63
收藏 1

《j2ee 简单网站搭建:(一) windows 操作系统下使用 eclipse 建立 maven web 项目》
《j2ee 简单网站搭建:(二)添加和配置 spring + spring-mvc 的 mvc 开发环境》
《j2ee 简单网站搭建:(三)在搭建好的 spring maven web 项目中加入 mybatis 访问数据库》
《j2ee 简单网站搭建:(四)将 freemaker 模板引擎作为 spring-mvc 展现层》
《j2ee 简单网站搭建:(五)使用 jcaptcha 生成验证码图片》
《j2ee 简单网站搭建:(六)使用 hibernate validation 实现 domain 层实体类验证》
《j2ee 简单网站搭建:(七)使用 shiro 结合 jcaptcha 实现用户验证登录》
《j2ee 简单网站搭建:(八)使用 jquery-validate 实现页面验证入门》
《j2ee 简单网站搭建:(九)jquery datatables + jquery ui dialog 插件使用入门》
《j2ee 简单网站搭建:(十)jquery ztree 插件使用入门》
《j2ee 简单网站搭建:(十一)ckeditor 控件使用入门》

ckeditor 版本 4ckeditor 使用很简单,一般只要以下几步即可
  1) 引用 js 文件
  2) 在 html 页面中添加需要绑定 ckeditor 的 textarea 标签
  3) 对 ckeditor 进行设置,其中包括需要上传图片时的上传文件处理路径
  
以下为 html 中的示例代码片段

<!-- CKEditor 相关文件 -->
<script type="text/javascript" src="你的文件位置/ckeditor.js"></script>

<!-- Page-Level Demo Scripts - Tables - Use for reference -->
<script>
    // ckeditor 的绑定和初始化设置
    // 这里的 txt_content 是页面中绑定 ckeditor 的控件,filebrowserImageUploadUrl:'../picture_upload' 是上传图片的处理路径
    var editor = CKEDITOR.replace('txt_content', { filebrowserImageUploadUrl:'../picture_upload'});
    $(document).ready(function () {
       /* - ckeditor start - */

        // 1.form submit 必须放在 validate 之前
        // 2.在 jquery validate 的 rules 里面将 ignore设置为空
        // 3.在 form submit 时更新 ckeditor 的 instance
        // 4.更改 jquery validate 的 errorPlacement 让 label.error 显示在正确位置
        editor.on("instanceReady", function() {
            //set keyup event
            this.document.on("keyup", function() {
                CKEDITOR.tools.setTimeout( function() {
                    $("#txt_content").val(editor.getData());
                    $("#txt_content").trigger('keyup');
                }, 0);
            });
            //and paste event
            this.document.on("paste", function() {
                CKEDITOR.tools.setTimeout( function()
                {
                    $("#txt_content").val(editor.getData());
                    $("#txt_content").trigger('keyup');
                }, 0);
            });

        });
        $('#bt_submit').click(function() {
            if ($('#form_add').valid()) { // 除ztree外都验证通过
                if (zTree.getCheckedNodes(true).length < 1) { // ztree有选择
                    $('#b_categorytree_validate').remove();
                    $('#categorytree').after("<b id='b_categorytree_validate'>请选择文章类型</b>");
                }
                else { // 所有验证都通过,进行数据添加
                    $('#dlbox_add_confirm').dialog('open');    // 打开弹出框
                }
            }
        });

        $("#form_add").validate({ // 添加表单验证
            rules: { // 验证规则
                ipt_title: {required: true, minlength: 5}, // 必填长度至少5位
                txt_content: {required: true}
            },
            messages: { // 验证失败消息
                ipt_title: {required: "请输入标题", minlength: "标题长度不能小于5位"},
                txt_content: {required: "请输入文章内容"}
            },
            ignore: '', // 这个设置是关键
            errorPlacement: function(error, element) {
                if (element.attr('name') == 'txt_content') {
                    error.insertAfter($(element).parent().children().last());
                } else {
                    error.insertAfter(element);
                }
            }
        });
        /* - ckeditor end - */

    });

</script>

以下是服务端处理图片的代码片段

@RequestMapping(value = "/picture_upload", produces = "application/json;charset=UTF-8")
public void pictureUpload(@RequestParam("upload") MultipartFile file,
                          @RequestParam("CKEditorFuncNum") String CKEditorFuncNum,
                          HttpServletRequest request,
                          HttpServletResponse response) throws IOException {
    String serverImageDirectory = request.getSession().getServletContext().getRealPath(ConfigUtil.SERVER_IMAGE_DIRECTORY);
    String imageFileName = System.currentTimeMillis() + "_" + file.getOriginalFilename();
    PrintWriter out = response.getWriter();
    response.setContentType("text/html;charset=UTF-8");
    response.setHeader("X-Frame-Options", "SAMEORIGIN");

    out.println("<script type=\"text/javascript\">");

    try {
        File saveFile = new File(serverImageDirectory + imageFileName);
        File parentFile = saveFile.getParentFile();
        if (!parentFile.exists())
            parentFile.mkdir();
        file.transferTo(saveFile);
        out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
                + ",'" + ConfigUtil.SERVER_IMAGE_DIRECTORY + imageFileName + "', '');");
    }
    catch (Exception e){
        out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
                + ",''," + "'图片上传失败!');");
    }

    out.println("</script>");
    out.flush();
}

 

© 著作权归作者所有

共有 人打赏支持
b
粉丝 1
博文 34
码字总数 58499
作品 0
兰州
程序员
CKEditor3.x 在Java项目中配置、包括图片上传(支持FTP、图片压缩)

CKEditor 3.x配置说明 一、基本使用: 1、所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2、配置使用 A.将下载下来的CKEditor压缩...

一枚Sir
2014/05/29
0
0
CKEditor与 CKFinder 整合并实现文件上传功能

事先说明:此整合的是java版本的, 用到的有:jsp + ckeditor + ckfinder 在项目中我们使用了FckEditor,但最新又出来了个ckEditor,到官方网站看看才知道FckEditor在2.6版本之后就改名为ckE...

simpler
2014/03/20
0
0
CKEditor配置以及上传图片附件

配置config.js 添加 其中的url指向的都是上传的方法 action或者servlet 图片浏览则会跳转到一个新的页面 选择上传 // 图片上传配置 config.filebrowserImageUploadUrl = 'upload.do?type=Ima...

阿丢丢
2013/10/15
0
0
解决CKEditor内容中文乱码问题

使用CKEditor编辑器 在把其中的内容传回服务器的时候中文可能会有乱码 首先修改 tomcat的server.xml 添加 utf-8 <Connector port="8080" protocol="HTTP/1.1" 然后修改 CKEditor的ckeditor....

阿丢丢
2013/10/15
0
0
CKEditor和CKFinder整合实现上传下载功能

事先说明:此整合的是java版本的, 用到的有:jsp + ckeditor + ckfinder (没有servlet 及其它框架技术) 一.需要的资源: 用到的网站,文件自己下载: a) ckeditor_3.6.2 (解压) download...

jxlgzwh
2013/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
2
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
9
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
4
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部