java集成富文本编辑器UEditor

article/2025/11/9 10:47:45

JAVA集成富文本编辑器UEditor

  • 集成前说明
  • 集成UEditor
    • 一.UEditor下载
    • 二.UEditor迁入项目
    • 三.引入ueditor中的js
    • 四.初始化UEditor
    • 五.实现图片上传

集成前说明

其实java独立集成ueditor是个伪命题,集成ueditor需要前后端共同参与才能完成,因为集成ueditor的时候,两端都有对应的配置,信息交互的接口及一些规则的定义。
集成大致的流程图:

前端部分集成
后端部分集成
1.将解压后的ueditor包拷贝进前端代码部分
2.需引入副文本编辑器文件引入js,并初始化
3.拷贝config.json文件,并提供初始化时提供配置的后端接口
5.启动测试
4.修改config.js中的serverUrl对应后端提供的配置接口,修改上传接口为后端提供的接口,修改all.js中的返回值,以回显图片
5.启动测试
集成ueditor
前端部分
后端部分
引入了ue的样式及js等等
此时样式已引入,但尚不能上传图片
读取config.json提供初始化配置接口,提供上传接口,按需修改上传文件的参数名
ueditor集成完毕
前端部分集成完成

集成UEditor

一.UEditor下载

百度搜索ueditor到官网进行下载,或者点击这个链接进入到下载页面http://ueditor.baidu.com/website/download.html,因为是java集成,所以选择Jsp版本.至于版本号,最新即可(当前最新1.4.3.3).

二.UEditor迁入项目

将下载后的UEditor压缩包解压,整体拷贝进前端代码某一处,因为压缩包中含有js,图标等多种内容,可以单独给定一个文件夹,与项目整体的js一个层级即可.当然了,这个位置是可以自己定义的,放哪里都行,但是一定要保证,项目中用到富文本的html也好,jsp也好,或者其他文件也好,能引入解压包中的js文件,不然后续将无法进行.

三.引入ueditor中的js

假如项目a.html文件是要集成富文本编辑器的文件,那么在这个文件中引入ue的js:

<!-- ueditor配置文件 --><script type="text/javascript" th:src="@{/ueditor/ueditor.config.js}"></script><!-- ueditor编辑器源码文件 --><script type="text/javascript" th:src="@{/ueditor/ueditor.all.js}"></script>

我这里用的是thymeleaf的形式引入的js文件,诸位看官可以根据自己项目的技术,对应着引入js文件即可.
引入后,在html代码相应位置(一般是form表单代码中).举例说明,你要做的是个新建的操作,表单里可能有标题,描述,和内容等字段,那么内容字段可能就是需要继承富文本编辑器的,那么你在对应的描述字段之后,书写这段代码即可:

<!-- 加载编辑器的容器 --><script id="container" name="content" type="text/plain">这里写你的初始化内容</script>

其中的name属性你可以根据自己属性进行修改,以方便跟随所在form一起提交,同样,id属性也能按需修改,但是这里如果修改,千万注意初始化的时候,要用修改后的id.
这两段代码的加入,ueditor就已经引入进来了,但尚未初始化.

四.初始化UEditor

ueditor的初始化过程就涉及到了前后端的交互了,我们分两步来完成一个正常的ueditor的初始化.
首先,暂不考虑交互的初始化比较简单,如下代码实现:

<!-- 实例化编辑器 --><script type="text/javascript">var ue = UE.getEditor('container');</script>

这步完成后,你的项目中,就能看到ueditor编辑器了,只不过你的图片上传功能是不可用的,这是未能正常与后台交互,获取到ueditor服务端配置(也就是后端代码部分)导致的.
集成图
与我的示例图可能不同,此时,你的编辑器的图片上传的部分是不可用的,当然有些朋友可能也从控制台看出了端倪,有条请求是失败的,下图是这条请求,当然,我这里举例的是正常的请求,也就是实现了正常的初始化前后端交互的动作.
初始化时前端发出的请求
其实这条请求的目的,是获取服务端配置的一些选项,如,上传图片接口的action名字及参数名等.
那么接下来我们就着手实现正常的初始化前后端交互.
首先将解压包中的config.json文件存放到后端代码的resource文件夹下的某一处,这里的内容就是服务端的一些配置.config.json文件的位置jsp/config.json.
如果是非前后端分离的代码,可以复用之前拷贝到前端部分的ueditor中的config.json文件.
既然说这个config.json是服务端的配置,而刚刚初始化的时候,由前端发出的请求是获取这个配置,那么我们只要提供个这个接口用来完成初始化时的交互即可.
1.服务端动作-读取json文件,并直接返回结果,代码如下:

@RequestMapping("/config")@ResponseBodypublic JSONObject getUeditorConfigJson(){JSONObject config = null;try {//json文件位置String configJsonPath = "/static/ueditor/jsp/config.json";Resource resource = new ClassPathResource(configJsonPath);config = JSONObject.parseObject(IOUtils.toString(new FileInputStream(resource.getFile()), Charsets.UTF_8.toString()));} catch (Exception e) {e.printStackTrace();}return config;}

2.修改下初始化时那个前端发出的请求,请求的地址更换成我们现在的提供的接口,修改的地方为ueditor中的ueditor.config.js中的serverUrl的值,我这里修改如下:
config.js的修改
ok,到这一步,ueditor的初始化算是正常初始化完成,可以通过初始化后的富文本编辑器的图片上传功能是否可用及控制台接口访问是否正常返回config.json中的配置来确认.

五.实现图片上传

编辑器初始化完成,但是还未实现图片上传,图片上传这个动作,我这边实现也是需要前后端都要进行处理的(如果利用起来ueditor的每次请求的action=xxx,可能要另讲).
1.服务端工作内容,先要有个图片上传的接口,并修改config.json中的imageFieldName值与我们上传图片参数名要一致.
java部分代码,实现上传:

/*** 上传图片* @param file* @return*/@RequestMapping("/image")public Result uploadImage(@RequestParam("file") MultipartFile file){Result result = uploadFileService.uploadImage(file);return result;}

config.json中的修改,使imageFieldName的值与上述参数名,也就是file保持一致:
config.json修改参数名
至此,服务端(后端)搞定了.
2.前端上传图片地址,指定为我们自己那个接口.
官网提供了这个接口地址的修改,我这里是在初始化编辑器前,进行了上传图片的地址的修改.代码如下:

UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;UE.Editor.prototype.getActionUrl = function(action) {if (action == 'uploadimage' || action == 'uploadscrawl') {return '/upload/image';} else {return this._bkGetActionUrl.call(this, action);}}ue = UE.getEditor('container');

其中的/upload/image路径,可以根据你页面的需要进行添加前面的http+ip+端口号的部分,因为我这里是非前后端分离的代码,这样写已经满足了需求.
到此处,图片应该已经能上传,且能在控制台看到上传的接口正常返回了,但是,很大可能,你上传完的图片,并没有成功回显在编辑器中,没错,各位大神们应该已经猜到了,是ueditor没能正确解析出来上传完成后的图片路径导致的不能回显,那么,我这里还做了一步操作,修改ueditor.all.js中的上传图片完成后对返回值解析的部分.修改如下:
解析返回值
可以看到,注释掉的部分,是原js中的代码,修改后部分,是根据我自己上传图片接口的返回值结构,获取上传成功后的图片路径.
各位大神按自己接口返回结构修改即可,这样,图片也能回显在编辑器中了.
至此,ueditor已经集成,且实现了图片上传的功能,其他细节,诸如编辑器的菜单的取舍,初始化的一些配置等等,可以去翻翻官方文档来按需实现,如果你只需要实现集成,其他默认即可,那么这里的内容应该能满足开发需求了.
第一次公开发博客,希望能对正在阅读的你有所帮助,亦或是提示,当然,如果你发现了我的不足,也欢迎批评指正,谢谢各位!


http://chatgpt.dhexx.cn/article/kU5HHbm5.shtml

相关文章

java实现文本编辑器

利用swing组件JEditText实现复制&#xff0c;粘贴&#xff0c;剪切功能,JEditText组测MouseListener,实现JPopupMenu右键弹出菜单&#xff0c;依次为JMenuItem&#xff0c;openButton&#xff0c;saveButton注册ActionListener&#xff0c;实现点击事件。Word.java: import ja…

JAVA实现简易文本编辑器设计

废话不多说直接上代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.plaf.FontUIResource; import javax.swing.text.Document; import java…

使用文本编辑器开发一个Java程序的详细步骤

概述 前提&#xff1a; 在学习本博文之前&#xff0c;您需要搭建好Java环境&#xff0c;其中包括1.JDK(Java开发工具箱)的下载&#xff1b;2.JDK环境变量的设置。 就目前对于Java程序的开发现状看的话&#xff0c;都是采用的流行的开发工具&#xff0c;其优点对于开发人员来说…

java 常用富文本编辑器_常用的六个富文本编辑器

1&#xff1a;:功能齐全 tinymce|TinyMCE | The Most Advanced WYSIWYG HTML Editor TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器&#xff0c;由JavaScript写成。它对IE6和Firefox1.5都有着非常良好的支持。 图片发自简书App 2&#xff1a;百度 ueditor|UEditor - 首页…

Java实现百度富文本编辑器UEditor

说起来 实现百度富文本编辑器也是比较简单&#xff0c;主要就是 读取 config.json 但是里面的坑也比较大 下面是我的步骤 以及我遇坑的过程 准备引入的jar包 这两个包找不到的话 可以去官网、也可以加群Java交流群&#xff0c;在群文件自行下载: QQ群&#xff1a;808249297 …

富文本编辑器在Java中使用

一、ckeditor 1&#xff09; 下载ckeditor_3.6.2.zip和ckeditor-java-core-3.5.3.zip两个压缩文件 下载地址:http://ckeditor.com 2&#xff09; 解压缩文件ckeditor_3.6.2.zip和ckeditor-java-core-3.5.3.zip两个文件&#xff0c; 在ckeditor_3.6.2文件中有ckeditor文件…

(JAVA)利用GUI编写简单文本编辑器

今天我们来尝试写一段代码&#xff0c;编写一个简单的文本编辑器&#xff0c;一起来看看吧&#xff01; 首先我们需要用到Java中的继承&#xff08;extends&#xff09;、接口&#xff08;implements&#xff09;。我们将其分为两个文件&#xff1a;一个文件中是所有的布局和逻…

Java设计文本编辑器

阿乐今天敲代码没 Java设计文本编辑器 前言一、实现功能二、扼要代码1.界面程序设计2.文件菜单设计3.编辑菜单栏设计4.格式菜单栏设计 运行截图 前言 利用Java设计一个文本编辑器。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、实现功能 该简易…

Java课设——文本编辑器

来自&#xff1a;https://blog.csdn.net/qq_39169598/article/details/84726959 原创不易&#xff0c;转载请加上作者 一、需求 编程实现一个文本编辑器&#xff0c;使其具有新建、打开、保存&#xff0c;编辑&#xff08;查找、替换、大小写转换等&#xff09;、统计&#…

用Java实现文本编辑器:创建、浏览、编辑文件;剪贴、复制、粘贴;保存、另存为;字符统计;自动换行

Java做文本编辑器的项目&#xff0c;搜了下看到网上有各种版本的Java文本编辑器有很多种&#xff0c;但有的实现很麻烦&#xff0c;最近刚好在做这个实现就也发一个&#xff0c;代码写得很朴素&#xff0c;注释无比详细。 测试过没有Bug&#xff0c;如果有什么问题&#xff0c…

Java实现简单的文本编辑器

1、首先创建一个编辑器EditorDemo类&#xff0c;继承JFrame类&#xff0c;具体实现编码如下&#xff1a; 2、创建菜单栏&#xff0c;新增各个菜单项&#xff0c;比如文件、编辑、帮助等功能&#xff0c;新增createJMenuBar方法如下&#xff1a; /*** 创建菜单栏* param acti…

你知道在深圳一个月花多少钱吗?

在深圳一个月花多少钱&#xff0c;才能活得比较像样&#xff1f; 早上上班挤地铁转公共&#xff0c;7到10块钱&#xff0c;中午在公司叫一份外卖&#xff0c;22块钱到30块钱&#xff0c;晚上加班和同事一起吃饭&#xff0c;25块左右&#xff0c;赶上末班地铁7块钱&#xff0c;房…

开发一个app需要多少钱

APP应用开发主要分为原生APP和HTML5APP开发&#xff0c;使用HTML5开发的app价格不是很高&#xff0c;但是在体验上&#xff0c;访问速度上比原生的有差距。 第一、商城类app报价计算 以H5的封装案例&#xff0c;价格比较便宜&#xff0c;商城价格几万就能搞定&#xff0c;不会超…

一般培训python要多少钱

Python语言相对简单并且非常适合初学者&#xff0c;使初学者可以专注于编程逻辑&#xff0c;而不会陷入晦涩的语法细节中。 学习python提供了比其他任何编程语言更多的职业发展选择。 那么&#xff0c;python培训班一般要多少钱&#xff1f; 伴随着互联网技术的迅猛发展&…

微信小程序开发一个多少钱

小程序开发是当前比较流行的一项技术服务&#xff0c;能够为企业和个人带来巨大的商业价值和社会价值&#xff0c;但是小程序开发费用也是潜在的成本之一。在选择小程序开发服务时&#xff0c;了解开发费用如何计算、影响价格的因素以及如何降低成本等方面的知识&#xff0c;可…

开发一个App大概要多少钱?

结合自己的各种采坑失败经验以及周边个别成功试水经验&#xff0c;站在个人角度给出一些理解。 APP制作有多种形式&#xff0c;所以需要的成本差异较大。 1.寻找外包公司 2.模板APP&#xff08;内行叫SAAS&#xff09; 3.自己组建团队 目录 互联网外包公司的成本构成&#…

chatgpt赋能python:如何让Python暂停?

如何让Python暂停&#xff1f; Python是一种高级编程语言&#xff0c;常用于数据分析、机器学习等领域。在Python编程中&#xff0c;我们经常需要让程序执行暂停一段时间&#xff0c;等待某些操作完成。本文将介绍如何让Python暂停&#xff0c;以及如何在SEO中优化文章标题&am…

独家 | ChatGPT可以解决分级和分类这样的简单机器学习任务

作者&#xff1a;Damir Yalalov 翻译&#xff1a;陈超 校对&#xff1a;赵茹萱本文约1100字&#xff0c;建议阅读5分钟 本文介绍了ChatGPT如何解决简单的机器学习任务并给出了鸢尾花分类和城市预测两个案例。 一句话概括&#xff1a; ChatGPT可以帮助你完成简单的机器学习任务…

分享 7 个不错的 AI 工具

人工智能的世界继续让我们着迷&#xff0c;近期的 OpenAI ChatGPT 掀起人们对人工智能的更大的期待&#xff0c;本文收集了 7 个人工智能 (AI) 工具&#xff0c;其中大部分易于使用&#xff0c;有些更复杂……比如构建 ML 模型。 1. GFP-GAN&#xff1a;照片修复 GFP-GAN 是一…

你们怎么都有自己的聊天机器人?给我也来一个!

点击左上方蓝字关注我们 PaddlePaddle Wechaty AI ChatBot创意赛正在火热进行中&#xff0c;人工智能时代的ChatBot需要具备哪些能力&#xff1f;由你来定义&#xff01;参赛的小伙伴们果然各显神通&#xff0c;快来pick你心中最中意的聊天机器人吧&#xff0c;并献上你珍贵的…