UEditor富文本编辑器

UEditor

  • 配置部分
  • 在该项目中插入uediter

UEditor是由百度FEX 前端团队开发并开源的一款功能强大、可定制性高的所见即所得(WYSIWYG)富文本编辑器。它的核心目标是帮助用户在网页上轻松编辑和发布格式丰富的内容(如新闻、博客、论坛帖子、产品描述、后台管理系统等),提供类似 Word 的编辑体验。

配置部分

访问 UEditor 官方 GitHub 仓库下载资源:UEditor

将下载好的资源 utf8-jsp 复制到 WebContent 下:

在这里插入图片描述

utf8-jsp 资源如下:

在这里插入图片描述

文件有报错,在 utf8-jsp 下的 {}config.json 文件中设置编码格式以 utf-8 的形式展示,若该文件还是报错,没关系不影响使用,只是检测的时候不支持。

接下来我们再看 controller.jsp 的报错内容:没有找到导入的 “com.baidu.ueditor.ActionEnter” 文件

在这里插入图片描述

项目所有需要的 jar 包需要在 WEB-INF/lib 下,而该资源对应的 jar 包在 utf8-jsp/lib 下,所以我们需要将 utf8-jsp/lib 下的五个 jar 包移到 WEB-INF/lib 下

在这里插入图片描述

这样 controller.jsp 就不报错了在这里插入图片描述

引入 UEditor 到 HTML,这里需要注意你当下的 HTML 文件与 ueditor.config.js、ueditor.all.js 的位置关系,我这里不在一个目录下,所以使用的是 utf8-jsp/ueditor.config.js、utf8-jsp/ueditor.all.js

<body><!-- 加载编辑器的容器 --><script id="container" name="content" type="text/plain"></script><!-- 配置文件 --><script type="text/javascript" src="utf8-jsp/ueditor.config.js"></script><!-- 编辑器源码文件 --><script type="text/javascript" src="utf8-jsp/ueditor.all.js"></script><!-- 实例化编辑器 --><script type="text/javascript">var ue = UE.getEditor('container');</script>
</body>

这里 ue 代表整个编辑器

效果展示:

在这里插入图片描述

这样就可以在uediter富文本编辑器中进行操作了
但是我们发现插入图片会出现这样的问题,无法正常显示图片内容,这样的话也无法对图片进行编辑调整:

在这里插入图片描述

此时我们查看项目的部署目录 C:\Users\HP\eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\web\ueditor\jsp\upload\image
注意这里其中有些地方是根据自己的部署来的:\tmp0是tomcat并联的版本号,\web是项目名称

当我们在uediter富文本编辑器中上传了图片,图片会上传到服务器的目录下,在服务器中确实看到了有该图片,但是前端无法访问到,所以需要在上传图片配置项中设置图片访问路径前缀后才可以在富文本编辑器中正常显示。

这里我们需要接着配置 utf8-jsp 下的 {}config.json 文件,需要在上传图片配置项中设置图片访问路径前缀,该文件中也有许多其他配置项,可以根据自己的需要进行设置

在这里插入图片描述

这样配置好之后在富文本编辑器中就可以正常显示图片了。

在这里插入图片描述

在这里插入图片描述

js 通过 ue.getContent() 和 ue.setContent 方法可以设置和读取编辑器的内容

在这里插入图片描述

将查询到的结果以html的形式进行解析:

在这里插入图片描述

在该项目中插入uediter

首先需要在数据库中增加一个字段用来记录文本信息:

在这里插入图片描述

后端的代码照旧,但是若这样插入信息:
在这里插入图片描述

会导致插入失败
在这里插入图片描述

我们将该sql语句放入 Navicat 中,结果如下:
在这里插入图片描述

解决方式1:将 introduce 外面的改成单引号

String sql = "insert into student(name,age,sex,classid,introduce) values(\""+name+"\","+age+",\""+sex+"\","+classid+",\'"+introduce+"\')";

解决方式2:将 introduce 字符串里面将双引号改成单引号,sql不变

introduce = introduce.replace("\"", "\'");
String sql = "insert into student(name,age,sex,classid,introduce) values(\""+name+"\","+age+",\""+sex+"\","+classid+",\""+introduce+"\")";

修改界面回显和修改的前端内容:

在这里插入图片描述
在这里插入图片描述

注意这里:

ue.ready(function(){var introduce = ue.setContent(obj.introduce)
})

富文本编辑器初始化是异步操作,使用 ue.ready(function() { … }) 文档就绪函数是为了确保在编辑器初始化完成后再执行操作,如果不设置文档就绪函数的话可能富文本编辑器还没加载出来呢就要添加值,所以需要等富文本编辑器准备好之后再设置值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89396.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js 常用工具

Node.js 常用工具 引言 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 编写服务器端应用程序。随着 Node.js 生态的日益完善,涌现出大量高效的工具,使得开发过程更加高效。本文将详细介绍一些在 Node.js 开发中常用的工具。 一、…

【unitrix】 6.7 基本结构体(types.rs)

一、源码 这是一个使用 Rust 类型系统实现类型级二进制数的方案&#xff0c;通过泛型和嵌套结构体在编译期表示数值。 //! 类型级二进制数表示方案 //! //! 使用嵌套泛型结构体表示二进制数&#xff0c;支持整数和实数表示。 //! //! ## 表示规则 //! - 整数部分: B<高位, 低…

基于Scikit-learn的机器学习建模与SHAP解释分析

基于Scikit-learn的机器学习建模与SHAP解释分析 1. 项目概述 本项目将使用Python的scikit-learn库对一个包含400条记录的数据集进行完整的机器学习建模流程,包括数据预处理、特征工程、模型训练和模型解释。我们将重点关注以下几个方面: 数据预处理:包括连续变量的标准化/…

QA:备份一般存储这块是怎么考虑?备份服务器如何选择?

1. 性能需求与架构设计 大数据平台的备份需满足高并发、加密传输、增量扫描、重复数据删除&#xff08;重删&#xff09;、数据压缩等复杂操作&#xff0c;对备份服务器的计算能力、存储吞吐及网络带宽提出极高要求。建议采用多节点集群架构&#xff0c;通过横向扩展提升备份效…

【东枫科技】用于汽车和工业传感器应用的高性能、集成式 24 GHz FMCW 雷达收发器芯片组

用于汽车和工业传感器应用的高性能、集成式 24 GHz FMCW 雷达收发器芯片组 ADF5904是一款高度集成的4通道、24 GHz接收机下变频器MMIC&#xff0c;具有卓越的低噪声性能、高线性度和低功耗组合。ADF5904集成式多通道接收机下变频器具有10 dB噪声系数性能&#xff0c;优于竞争型…

新版本flutter(3.32.7) android 端集成百度地图sdk

新版本flutter(3.32.7) android 端集成百度地图sdk 因为官方文档有很多地方没有说清楚,导致在适配过程中踩了很多坑,本文档基于已经实现集成的flutter安卓端应用编写。 官方文档地址:https://lbs.baidu.com/faq/api?title=flutter/loc/create-project/configure Flutt…

FreeRTOS—列表和列表项

文章目录一、列表与列表项1.1.列表与列表项的简介1.2.列表与列表项相关结构体1.2.1.列表结构体1.2.2.列表项结构体1.2.3.迷你列表项二、列表相关API函数2.1.列表相关API函数介绍2.1.1.vListInitalise( )初始化列表函数2.1.2.vListInitaliseItem( )初始化列表项函数2.1.3.vListI…

超详细 anji-captcha滑块验证uniapp微信小程序前端组件

由于步骤太多&#xff0c;字数太多&#xff0c;废话也太多&#xff0c;所以前后端分开讲了&#xff0c;后端文章请看&#xff1a; 超详细 anji-captcha滑块验证springbootuniapp微信小程序前后端组合https://blog.csdn.net/new_public/article/details/149116742 anji-captcha…

面向对象编程篇

文章目录一、思维导图二、详细内容第 6 章&#xff1a;面向对象编程基础6.1 面向对象编程的概念和优势6.2 类和对象的定义与创建6.3 类的属性和方法6.4 构造函数&#xff08;__init__&#xff09;和析构函数&#xff08;__del__&#xff09;6.5 封装、继承和多态的实现第 7 章&…

虚拟商品自动化实践:闲鱼订单防漏发与模板化管理的技术解析

最近阿灿发现了一款闲鱼虚拟商品卖家必备神器&#xff01;告别手动发货&#xff0c;订单自动处理&#xff0c;防错防漏&#xff0c;支持课程、激活码、电子书等多种商品&#xff0c;预设模板更省心。文末获取工具&#xff01;最厉害的是&#xff0c;你完全不用一直开着电脑。以…

【Zephyr开发实践系列】08_NVS文件系统调试记录

文章目录前言一、NVS原理介绍&#xff1a;二、BUG-NO1&#xff1a;将NVS运用在NAND-Flash类大容量存储设备2.1 情况描述&#xff1a;2.2 BUG复现&#xff1a;文件系统设备树构建测试应用编写&#xff08;导致错误部分&#xff09;&#xff1a;问题呈现&#xff1a;2.3 问题简述…

网络安全第二次作业

靶场闯关1~8 1. 在url后的name后输入payload ?name<script>alert(1)</script> 2. 尝试在框中输入上一关的payload,发现并没有通过&#xff0c;此时我们可以点开页面的源代码看看我们输入的值被送到什么地方去了 从图中可以看到&#xff0c;我们输入的值被送到i…

LangChain 源码剖析(七)RunnableBindingBase 深度剖析:给 Runnable“穿衣服“ 的装饰器架构

每一篇文章都短小精悍&#xff0c;不啰嗦。一、功能定位&#xff1a;Runnable 的 "增强包装器"RunnableBindingBase 是 LangChain 中实现装饰器模式的核心组件。它就像给原有 Runnable 套上一件 "功能外套"—— 不改变原有 Runnable 的核心逻辑&#xff0c…

为 Git branch 命令添加描述功能

写在最前面的使用方式 查看 所有分支的备注 git branch.notes创建分支并为分支添加备注 git co -b feat/oauth -m 第三方用户登录对分支描述的添加与清除 添加 git branch.note --add 清除 git branch.note --clear &#x1f4dd; 为 Git branch 命令添加描述功能 &#x…

LeetCode|Day18|20. 有效的括号|Python刷题笔记

LeetCode&#xff5c;Day18&#xff5c;20. 有效的括号&#xff5c;Python刷题笔记 &#x1f5d3;️ 本文属于【LeetCode 简单题百日计划】系列 &#x1f449; 点击查看系列总目录 >> &#x1f4cc; 题目简介 题号&#xff1a;20. 有效的括号 难度&#xff1a;简单 题目…

使⽤Pytorch构建⼀个神经⽹络

关于torch.nn:使⽤Pytorch来构建神经⽹络, 主要的⼯具都在torch.nn包中.nn依赖于autograd来定义模型, 并对其⾃动求导.构建神经⽹络的典型流程:定义⼀个拥有可学习参数的神经⽹络遍历训练数据集处理输⼊数据使其流经神经⽹络计算损失值将⽹络参数的梯度进⾏反向传播以⼀定的规则…

网络爬虫的详细知识点

基本介绍 什么是网络爬虫 网络爬虫&#xff08;Web Crawler&#xff09;是一种自动化程序&#xff0c;用于从互联网上抓取、解析和存储网页数据。其核心功能是模拟人类浏览行为&#xff0c;通过HTTP/HTTPS协议访问目标网站&#xff0c;提取文本、链接、图片或其他结构化信息&…

AndroidX中ComponentActivity与原生 Activity 的区别

一、AndroidX 与原生 Activity 的区别 1. 概念与背景 原生 Activity&#xff1a;指 Android 早期&#xff08;API 1 起&#xff09;就存在于 android.app 包下的 Activity 类&#xff08;如 android.app.Activity&#xff09;&#xff0c;是 Android 最初的 Activity 实现&…

Spring AI 使用 Elasticsearch 作为向量数据库

前言 嗨&#xff0c;大家好&#xff0c;我是雪荷&#xff0c;最近在公司开发 AI 知识库&#xff0c;同时学到了一些 AI 开发相关的技术&#xff0c;这期先与大家分享一下如何用 ES 当做向量数据库。 安装ES 第一步我们先安装 Elasticsearch&#xff0c;这里建议 Elasticsear…

TypeScript 配置全解析:tsconfig.json、tsconfig.app.json 与 tsconfig.node.json 的深度指南

前言在现代前端和后端开发中&#xff0c;TypeScript 已经成为许多开发者的首选语言。然而&#xff0c;TypeScript 的配置文件&#xff08;特别是多个配置文件协同工作时&#xff09;常常让开发者感到困惑。本文将深入探讨 tsconfig.json、tsconfig.app.json 和 tsconfig.node.j…