富文本编辑器在javaweb项目中还是比较常见的,如:ckeditor、kindeditor、ueditor等。今天主要叙述的对象为ueditor,它属于百度的。闲话不多说,下面开始介绍ueditor的使用。

一、前期准备

(1)下载资源
        由于是java项目,我们去ueditor的官网下载 1.4.3.3 Jsp版本
        
        现在这个年代,表情包是必须品;为了方便用户的使用,我们还可以下载下本地表情包
        
        
(2)前期处理
        <1> 下载好的表情包需要copy到ueditor1.4.3.3-jsp里面去,具体的方法在表情包里面有使用说明。
    <2> 如果项目采用Maven构建的话,需要自己手动安装ueditor的jar包到本地仓库。我们可以打开下载的的文件,进入ueditor/jsp/lib里面看到很多jar包。这个ueditor在Maven中央仓库找不到,即使找到了也可能是别人修改过的jar包。
            
        关于怎么安装jar包到本地Maven仓库,可参考我的博客:http://www.cnblogs.com/zeng1994/p/7486330.html

二、开始实战

(1)将ueditor导入到项目中
         具体的导入参考下图
               
(2)添加Maven依赖
        具体依赖参考下图,需要注意的是ueditor的jar包是自己安装的,中央仓库没有的
            
(3)测试ueditor
    所谓的测试其实就是通过浏览器访问我们项目中的ueditor/jsp/controller.jsp?action=config
    注意:需要启动项目
    我这里直接访问:http://127.0.0.1:8888/js/ueditor/jsp/controller.jsp?action=config  这个链接因人而异,返回如下结果
          
     能返回json字符串说明jar包成功导入,且能上传文件。即文件上传的请求不会被拦截。
     注意: 如果你的富文本编辑器要支持上传图片的话,上面这个测试一定要能返回类似的json数据,否则上传不了图片。
     一般测试不成功,都是因为上传图片的请求别拦截了。可能是因为过滤器配置了个 /* 给拦截的,或者是配置了 *.jsp 

(4)页面中使用ueditor
     配置可参考ueditor文件夹下的index.html文件。当然这里就不参考了,直接来看看吧。
      <1> 在页面引入相关资源文件
<script type="text/javascript" charset="utf-8" src="${basePath}js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="${basePath}js/ueditor/ueditor.all.min.js"> </script>
<script type="text/javascript" charset="utf-8" src="${basePath}js/ueditor/lang/zh-cn/zh-cn.js"></script>    
3
 
1
<script type="text/javascript" charset="utf-8" src="${basePath}js/ueditor/ueditor.config.js"></script>
2
<script type="text/javascript" charset="utf-8" src="${basePath}js/ueditor/ueditor.all.min.js"> </script>
3
<script type="text/javascript" charset="utf-8" src="${basePath}js/ueditor/lang/zh-cn/zh-cn.js"></script>    
      <2> 在页面中配置ueditor
          这个配置先贴代码,这段代码是js代码哦。下面再介绍
	// 配置ueditor的根路径
window.UEDITOR_HOME_URL = "${basePath}js/ueditor/";
// 实例化编辑器,'editor'其实就是textarea的id
var ue = UE.getEditor("editor",{
emotionLocalization : true // 开启使用本地表情包
,elementPathEnabled : false // 不显示元素路径
, toolbars: [[
'fullscreen', 'source', '|', 'undo', 'redo', '|',
'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
'directionalityltr', 'directionalityrtl', 'indent', '|',
'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
'simpleupload', 'insertimage', 'emotion', 'map', 'insertframe', 'insertcode','pagebreak', 'template', 'background', '|',
'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
'print', 'preview', 'searchreplace', 'drafts', 'help'
]]
});
 
1
    // 配置ueditor的根路径
2
    window.UEDITOR_HOME_URL = "${basePath}js/ueditor/";
3
    // 实例化编辑器,'editor'其实就是textarea的id
4
    var ue = UE.getEditor("editor",{ 
5
        emotionLocalization : true  // 开启使用本地表情包
6
        ,elementPathEnabled : false // 不显示元素路径
7
        , toolbars: [[
8
            'fullscreen', 'source', '|', 'undo', 'redo', '|',
9
            'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
10
            'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
11
            'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
12
            'directionalityltr', 'directionalityrtl', 'indent', '|',
13
            'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
14
            'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
15
            'simpleupload', 'insertimage', 'emotion', 'map', 'insertframe', 'insertcode','pagebreak', 'template', 'background', '|',
16
            'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
17
            'print', 'preview', 'searchreplace', 'drafts', 'help'
18
        ]]
19
    });
    上面这一堆配置是怎么来的,其实可以打开 ueditor.config.js这个文件来看一下。里面介绍了怎么配置ueditor,这里用的是在实例化编辑器时传入对应参数的方式。这种方式不会去侵入ueditor的源码,方便ueditor的版本升级。这种方式就是ueditor的前端配置项中介绍的方式。
    再说说上面这段代码,先配置这个ueditor的根路径,这个很重要,配置好了就可以减少很多问题。第二部分代码就是实例化ueditor编辑的的配置,首先传入了一个容器id,这个容器我们一般用textarea ,这个id就是textarea的id;传入后ueditor就在textarea上了。后面那部分用大括号包住的是编辑器配置参数,就是ueditor.config.js里面注释掉的这些东西。我这里就配置了开启本地表情包,因为我们自己下载好了表情包。还有就是自定义了工具栏中显示的内容,以及不在下面显示元素路径。

        <3> 效果展示
        

(5)文件上传的配置
    其实ueditor的文件上传有点坑,它这个默认的文件上传是上传到项目路径下面的。如果要手动修改文件上传,则有点麻烦。需要自定义上传的后端代码,还要在前端配置。这个就不多介绍,百度一下,你就知道。这里说下他自带的文件的文件上传怎么配置吧。
    我们打开ueditor/jsp下面的config.json文件,里面就是上配置文件上传相关的东西,我们需要修改这里面的配置。和图片上传相关的一般就修改下图中的2个参数即可。
    参数imagePathFormat 配置上传的保存路径,这里可以修改也可以不修改。
    参数imageUrlPrefix 配置图片的访问前缀,这个配置有点蛋疼,不能动态修改。一般的话,配置成 "/项目名称"。
    如果你习惯了在开发中访问项目不带项目名称,那么请配置成空串。我一般开发都不喜欢带项目名,因此配的空串。
    一般我们项目上线时也是访问不带项目名称的,因此 在项目上线时请配置成空串。
        
     
    配置完后,图片可上传,也可以在页面上显示,证明图片配置正确。还可以通过,点击图片,弹出一个工具栏,点击修改,可以看到很多和图片相关的信息。也可以看到图片的访问路径。通过该路径,可以看你配置的路径是否正确。
         
        
        这里补充一个配置,上面这个在线管理很坑,可以看到别的用户上传的图片。因此我们还需修改config.json的配置,把列出图片个数设为0,这样在线管理就看不到图片了。另一种方法就是修改源代码,去掉在线管理,更多请自己百度。
        
 
 

三、结束语

    本文只简单介绍了ueditor的使用,如怎么配置工具栏,配置图片上传等。不过这个的图片上传有点坑就是图片会上传到项目路径下。不过,一般项目都在Linux下面运行的,我们可以通过软连接的方式,把图片放到项目外面去,这样重新部署图片就不会丢失了。更多软连接内容,可参考我的博客:http://www.cnblogs.com/zeng1994/p/7512778.html
 

 


 

 

Ueditor使用笔记的更多相关文章

  1. 百科编辑器ueditor应用笔记

    最近项目上要用到文本编辑器,选了百科开源的ueditor,使用过程中虽然有些问题,但是一个个都解决了,记录如下: 开发的项目环境是vs2012:.net4.0: 1:百度js编辑器,编辑器加载到项目中 ...

  2. UEditor学习笔记1

    首先对于前段时间遇到的一些总结做下记录: 0 == ''  => true transition,渐变属性,其值可以是某属性,也可以是all,如transition: all 0.3s:鼠标放到 ...

  3. 很详细的SpringBoot整合UEditor教程

    很详细的SpringBoot整合UEditor教程 2017年04月10日 20:27:21 小宝2333 阅读数:21529    版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...

  4. MVC OF UEditor 图片上传- 额外参数 笔记

    最近正巧需要用到UEditor ,因为需求,.需要把上传的图片数据上传到阿里云的OSS与记录图片相关信息到MS SQL中 . 不得已只能翻UEditor的实现代码>_<痛苦. 备忘笔记: ...

  5. Typecho集成ueditor笔记

    前言:萝卜青菜各有所爱,因为个人需求所以需要在博客中集成ueditor,并非是我不喜欢md语法 其实本篇的笔记的书写最早也是在本地的md编辑器上完成的 1. 首先下载ueditor编辑器,然后重命名文 ...

  6. springmvc学习笔记--ueditor和springmvc的集成

    前言: 在web开发中, 富文本的编辑器真心很重要. 有电商店铺的打理, 新闻稿/博客文章/论坛帖子的编辑等等, 这种所见即所的编辑方式, 大大方便了非技术人员从事互利网相关的工作. 因为手头有个小项 ...

  7. nodejs学习笔记三——nodejs使用富文本插件ueditor

    在做自己的nodejs项目的时候遇到需要使用ueditor.原来下载的是ueditor的jsp版本.目录如下  在ueditor.config.js中有配置服务器home路径(这个home路径能找到u ...

  8. 使用ueditor中的setContent() 时经常报innerHtml错误(笔记)

    1)今天遇到个问题,使用ueditor中的setContent() 时经常报innerHtml错误:网上找了下解决方案:发现这个可以用: 不能创建editor之后马上使用ueditor.setCont ...

  9. [moka同学笔记]百度编辑器Ueditor自动换行,添加<p>的问题(摘录)

     原文:http://www.cnblogs.com/kissdodog/p/5419919.html 百度编辑器Ueditor其实蛮好用的,后来使用了一段时间发现,每次打开后又保存,发现都会往内容的 ...

随机推荐

  1. Atitit.播放系统规划新版本 and 最近版本回顾 v3  pbf.doc  1 版本11 (ing)41.1 规划h5本地缓存系列 41.2 Android版本app41.3 双类别系统,

    Atitit.播放系统规划新版本 and 最近版本回顾 v3  pbf.doc 1 版本11 (ing)4 1.1 规划h5本地缓存系列 4 1.2 Android版本app4 1.3 双类别系统, ...

  2. HBuilder开发iPad程序不能全屏显示的解决方法

    HBuilder开发iPad程序不能全屏显示的解决方法: targets选择HBuilder=>Deployment Info=> devices选择Universal即可

  3. [Android] 旋转照片/图片

    今天比较闲(是任务做完了,不是偷懒),就多更新几篇,补一下之前做的东西. 原文地址请保留http://www.cnblogs.com/rossoneri/p/3995306.html 推荐阅读: An ...

  4. [CENTOS7] 将域群组加入到Sudoer里

    文章来源:https://derflounder.wordpress.com/2012/12/14/adding-ad-domain-groups-to-etcsudoers/ Adding AD d ...

  5. BAT文件语法和技巧

    首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任 ...

  6. android打开存储卡(TF卡\SD卡)中的sqlite文件

    android的SDK直接支持sqlite3的API.   打开SD卡上面的sqlite数据库,不需要SQLiteOpenHelper的继承类.只需要,SQLiteDatabase中的一些静态方法.如 ...

  7. C++设计模式 ==> 策略模式与简单工厂模式结合

    简介 策略模式相较之于简单工厂模式适用于生产方法经常变化且方法较为繁多的情况,因为生产方法时常变化就会需要频繁修改工厂类,违背了开闭原则,这时就可以用策略选择类由客户端根据需求动态切换策略.且策略模式 ...

  8. KMP、扩展KMP、Manacher习题

    照着这篇博客刷一下. 自己也做一下笔记 对于KMP算法,可以看我之前总结的这篇博客 hdu 3613 Best Reward 给一个字符串,字符由a~z构成,每个字符有一个权值.在某一点将字符串切成2 ...

  9. arcgis pro2.3教程与问题集持续更新(一)

    Arcgis pro 2.3是64位的不支持mdb 数据库,因为微软没有开放Access64的接口,所以不能支持个人地理数据库.mdb(Microsoft Database). arcgis pro ...

  10. (转)Python3异常-AttributeError: module 'sys' has no attribute 'setdefaultencoding

    基于python3.6.1版本,在一个.py文件中,加入这3行:import requests, re, sysreload(sys)sys.setdefaultencoding("utf- ...