[J2EE]jsp项目中使用UEditor富文本编辑器

简介: 需求  新闻中心模块需要实现新闻浏览功能. 管理员能在后台编辑新闻、发布新闻. 能够实现图文混排.解决方案        使用在线HTML编辑器实现傻瓜式编辑,编辑完成后存储html代码到数据库,动态读取数据库实现前台展示.HTML编辑器选用Ueditor【官网】.UEditor简介Ueditor是百度前端团队研发富文本编辑器,可以像编辑word一样编辑html实现所见即所得的效果.基于MIT开源协议,功能强大,允许自由使用和修改。

需求

  •   新闻中心模块需要实现新闻浏览功能.
  •  管理员能在后台编辑新闻、发布新闻.
  •  能够实现图文混排.

解决方案

        使用在线HTML编辑器实现傻瓜式编辑,编辑完成后存储html代码到数据库,动态读取数据库实现前台展示.HTML编辑器选用Ueditor【官网】.

UEditor简介

  • Ueditor是百度前端团队研发富文本编辑器,可以像编辑word一样编辑html实现所见即所得的效果.
  • 基于MIT开源协议,功能强大,允许自由使用和修改。

安装配置

      1.下载UEditor【1.4.3 JSP版本】.下载地址:http://ueditor.baidu.com/website/download.html 

         解压之后的文件的目录是这样的:

                    

   2.Eclipse中新建动态web项目.

      打开eclipse,file->NEW->Other->Web->Dynamic Web Project->next. Project name自定义,Dynamic web module version选择 2.5.Finish。


                                                                
3.在WebContent目录下新建文件夹ueditor1_4_3,导入UEditor下载的ueditor配置文件到该文件下.

全选


  4.  拷贝ueditor1_4_3/jsp/lib下的库文件到WEN-INF/lib文件夹下. 
 5. 添加项目到tomcat中并启动,浏览器中输入以下URL
    http://localhost:8080/uetest/ueditor1_4_3/jsp/controller.jsp?action=config
    工程目录和测试成功后的的内容如下
     
6.单击WebContent/ueditor1_4_3/index.html,右键->Run As->Run On Server.可以看到完整版demo实例.


7.编辑一篇新闻:


8.点击编辑框左上角的"HTML"图标,查看编辑内容的HTML源码



 9.点击"获得内容"按钮,js会输出编辑框内的html代码:


说明编辑的内容会自动转换为HTML,而且HTML代码片段是可以输出的,那么如何获取编辑内容?
1.在WebContent目录下新建news.jsp.
2.打开index.jsp,找到下面这几行代码:
   
3.增加表单,action="news.jsp"
   
4.在index.jsp的编辑框中随便输入一串字符,提交.
   
5.查看浏览器地址栏变化,可以看到编辑表单的name为editorValue

6.将form表单传输数据方法改为post.删去暂时用不到的JS方法和button,在news.jsp中使用getParameter方法接收editorVaule值,并用jsp代码片段展示新闻编辑内容.
index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>完整demo</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <script type="text/javascript" charset="utf-8" src="ueditor1_4_3/ueditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="ueditor1_4_3/ueditor.all.min.js"> </script>
    <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
    <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
    <script type="text/javascript" charset="utf-8" src="ueditor1_4_3/lang/zh-cn/zh-cn.js"></script>

    <style type="text/css">
        div{
            width:100%;
        }
    </style>
</head>
<body>
<div>
 <form action="news.jsp" method="post" target="_blank">
    <h1>完整demo</h1>
    <script id="editor" type="text/plain" style="width:1024px;height:500px;">
    </script>
    <input type="submit" value="编辑完成">
</form>

</div>


<script type="text/javascript">

    //实例化编辑器
    //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
    var ue = UE.getEditor('editor');


    function getContent() {
        var arr = [];
        arr.push("使用editor.getContent()方法可以获得编辑器的内容");
        arr.push("内容为:");
        arr.push(UE.getEditor('editor').getContent());
        alert(arr.join("\n"));
    }

</script>
</body>
</html>

news.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>news</title>
<style type="text/css">
.news {
	width: 800px;
	margin: 0 auto;
}
</style>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		String newsbody = request.getParameter("editorValue");
	%>

	<div class="news">
		<%=newsbody%>

	</div>
</body>
</html>

7.编辑新闻:

8.点击编辑完成,转至news.jsp,效果如下.



至此可见ueditor配置使用非常简单,对编辑内容进行处理只需要接收editorVaule值即可进行进行下一步处理.

配置图片上传路径

  要实现图文混排需要对配置文件进行修改.
 1.打开/uetest/WebContent/ueditor1_4_3/jsp/config.json,imageUrlPrefix值为"/工程名",注意要加上/.imagePathFormat路径要和工程目录配置一致.
 
2.打开ueditor.config.js,修改window.UEDITOR_HOME_URL为符合项目访问的路径。
  


3.config.json文件中有提交的图片图片表单名称设置,  “  "imageFieldName": "upfile", /* 提交的图片表单名称 */”,上传图片的表单属性中加入一行name="upfile",测试:


Struts框架下图片上传配置

    在struts框架下按照上面的配置图片上传仍然不成功,原因是配置struts时默认拦截器把所有请求都做了处理。

解决方法就是自定义拦截器,步骤
1 .创建拦截器类
package com.test.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;

public class MyStrutsFilter  extends StrutsPrepareAndExecuteFilter{
	public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {  
        HttpServletRequest request = (HttpServletRequest) req;  
        //不过滤的url  
        String url = request.getRequestURI();  
        System.out.println(url);  
        if ("/uetest/ueditor1_4_3/jsp/controller.jsp".equals(url)) {  //注意路径
            System.out.println("使用自定义的过滤器");  
            chain.doFilter(req, res);  
        }else{  
            System.out.println("使用默认的过滤器");  
            super.doFilter(req, res, chain);  
        }  
    } 
}


2 .修改web.xml,把默认拦截器修改为自定义拦截器
<filter>
        <filter-name>struts2</filter-name>
        <filter-class>com.test.filter.MyStrutsFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


总结

  •   UE功能强大,配置比较简单
  •   图片上传要注意配置文件中的路径,最终上传到服务器的图片文件默认是以时间戳命名文件夹保存图片的.
  •  在struts中配置UE需要自定义拦截器
程序下载地址:

    


目录
相关文章
|
7月前
|
Java
新闻发布项目——后台JSP界面adminManage/addNews.jsp
新闻发布项目——后台JSP界面adminManage/addNews.jsp
|
7月前
|
Java
新闻发布项目——后台JSP界面adminManage/editNews.jsp
新闻发布项目——后台JSP界面adminManage/editNews.jsp
|
7月前
|
Java
新闻发布项目——后台JSP界面adminManage/manageTopic.jsp
新闻发布项目——后台JSP界面adminManage/manageTopic.jsp
|
7月前
|
Java
新闻发布项目——后台JSP界面adminManage/modifyCategory.jsp
新闻发布项目——后台JSP界面adminManage/modifyCategory.jsp
|
16天前
|
存储 人工智能 数据库
Codel:AI代理工具,支持在终端、浏览器、编辑器执行复杂任务和项目
Codel是一款全自主AI代理工具,支持在终端、浏览器和编辑器中执行复杂任务和项目。它运行在沙盒化的Docker环境中,具备自主操作能力,内置浏览器和文本编辑器,所有操作记录存储于PostgreSQL数据库。Codel能够自动完成复杂任务,如创建项目结构、进行网络搜索等,适用于自动化编程、研究与开发、教育与培训以及数据科学与分析等多个领域。
55 11
Codel:AI代理工具,支持在终端、浏览器、编辑器执行复杂任务和项目
|
4月前
|
存储 安全 数据安全/隐私保护
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
172 0
|
6月前
|
前端开发 JavaScript Java
计算机Java项目|jsp企业仓储管理系统
计算机Java项目|jsp企业仓储管理系统
|
3月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
2月前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
229 0
idea+maven+tomcat+spring 创建一个jsp项目
|
4月前
|
JavaScript
基于Vue2.X对WangEditor 5富文本编辑器进行封装与使用,支持单个或多个图片点击、粘贴、拖拽上传,Vue3.X项目也可直接使用
这篇文章介绍了如何在Vue 2.X项目中封装和使用WangEditor 5富文本编辑器,支持图片的点击、粘贴和拖拽上传,同时提到封装的组件也适用于Vue 3.X项目,并提供了详细的使用示例和后端配置。
351 1
基于Vue2.X对WangEditor 5富文本编辑器进行封装与使用,支持单个或多个图片点击、粘贴、拖拽上传,Vue3.X项目也可直接使用
下一篇
DataWorks