他的项目的gitHub地址
https://github.com/fex-team/ueditor,他提供了各个版本demo;我们选择java的版本。
使用方法:
<!-- 配置文件 --> <scripttype="text/javascript"src="ueditor/ueditor.config.js"></script> <!-- 编辑器源码文件 --> <scripttype="text/javascript"src="ueditor/ueditor.all.js"></script>
注意改下文件路径//实例化编辑器 //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例 var ue = UE.getEditor('editor'); //初始化编辑器 (该处用于设置编辑器回显值) ue.ready(function () { ue.setContent(formData.content); });
<script id="editor" type="text/plain"></script>//这行代码在你需要用到的表单元素写上,ueditor会识别到然后实例化一个编辑器到这里的
到这一步你基本的配置就完成了
-
但是如果ueditor支持图片、文档、音乐等文件上传功能,如果你想要配置上传路径,可以修改 ueditor/jsp/config.json。这个文件对于每一个配置项,都明确的文字说明。附上一段图片上传的配置吧:
/* 上传图片配置项 */ "imageActionName": "uploadimage", /* 执行上传图片的action名称 */ "imageFieldName": "upfile", /* 提交的图片表单名称 */ "imageMaxSize": 2048000, /* 上传大小限制,单位B */ "imageAllowFiles": [".png", ".jpg",".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */ "imageCompressEnable": true, /* 是否压缩图片,默认是true*/ "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ "imageInsertAlign": "none", /* 插入的图片浮动方式 */ "imageUrlPrefix": "", /* 图片访问路径前缀 */ "imagePathFormat":"_images/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
如果你没有自己的文件管理服务器的话你可以直接修改 imageUrlPrefix 这个属性,也就是域名就可以了,他会创建一个文件夹来保存你上传的文件,你也可以修改他的imagePathFormat 属性来修改他的路径
-
你如果觉得界面功能太多想去掉一些的话可以自定义界面的。只要在ueditor/ueditor.config.js的toolbar中删改配置即可,代码如下:他的代码如下:
//工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的从新定义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', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'pagebreak', 'template', 'background', '|', 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|', 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|', 'searchreplace', 'help', 'drafts' ]] 那些自己觉得不需要的去掉就行了
-
如果图片,文件等有自己的文件系统的话,这个时候就需要拦截所有文件上传的请求然后独立处理 代码如下;
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <script type="text/javascript" charset="utf-8" src="${root}/ueditor/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="${root}/ueditor/ueditor.all.min.js"> </script> <script type="text/javascript" charset="utf-8" src="${root}/ueditor/lang/zh-cn/zh-cn.js"></script> <script> UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl; UE.Editor.prototype.getActionUrl = function(action) { if (action == "uploadimage" || action == "uploadscrawl" || action == "listimage" || action == "catchimage") { return "${root}/upload/ue" } else { return this._bkGetActionUrl.call(this, action); } } </script>
该文件的关键,拦截所有上传请求然后后台写一个Control处理该处的文件。
贴下后台请求的处理代码:
@PostMapping("/ue")@ResponseBody public String ueUploadFile(HttpServletRequest request, @RequestParam("upfile") MultipartFile multipartFile) throws IOException { try { Map<String,String> map = Maps.newHashMap(); UploadResult uploadResult = baseFileService.upload(multipartFile.getBytes(),multipartFile.getOriginalFilename(),"uEditor",map); if (uploadResult != null) { UploadFileVo uploadFileVo = new UploadFileVo(); uploadFileVo.setOriginal(multipartFile.getOriginalFilename()); uploadFileVo.setState("SUCCESS"); uploadFileVo.setSize(multipartFile.getSize()+""); uploadFileVo.setTitle(multipartFile.getName()); uploadFileVo.setUrl(qa_manage_url + uploadResult.getGroup() + "/" + uploadResult.getFileName()); return JSON.json(uploadFileVo); } } catch (IOException e) { e.printStackTrace(); } return null; }
其实这里主要是返回的对象属性名要跟Ueditor里面的名字一样
我建的实体类属性如下private String state ; private String title ; private String original; private String type; private String url;//文件路劲Ueditor是识别这个属性的 private String size;
以上就是Ueditor基本上手使用