Springboot整合euditor的爬坑之路

Springboot整合euditor的爬坑之路

做毕业设计,一个资源分享网站,需要用到富文本编辑器,然后我就开始了我的ueditor的爬坑之路,特别是当我在官网看到最接近的只有jsp版本的时候我就有预感,不好搞。

在这里插入图片描述

一、爬坑一

后台配置项返回格式出错????

在这里插入图片描述

遇到这个问题的时候我是一脸懵逼啊?然后打开了万能的百度,经过一翻查找,弄清楚问题的原因了。

  • 首先:ueditor的ueditor.config.js文件里面有个配置,会在浏览器里面去请求一个叫做controller.jsp的文件

在这里插入图片描述
没错这两个文件都是由ueditor自己提供的,那么问题就出在这里,Springboot默认不会对jsp文件进行解析,Springboot默认的页面解析引擎是thymeleaf,而这里jsp被作为一个静态资源文件被浏览器访问,浏览器也蒙蔽了,然后就出现了上述的错误。

  • 那么第二个问题来了,这个controller.jsp文件时时用来干嘛的了?

在这里插入图片描述

没错他是用来解析config.json文件的,这个文件里面配置了文件的上传,下载等等一系列的参数。通过读取这些参数,就能够调用ueditor里面封装好的接口完成文件上传和下载的业务,从而不需要去写对应的控制器。

  • 好了那么最重要的问题来了,既然知道问题原因了,那解决办法是什么了?

    • 这里按照其他人的解决方式和笔者自己用的解决方式一共有三个。

      • 第一个:修改config.js里面的请求接口,绕过controller.jsp直接访问我们自定义的控制器。那么我们自定义的控制器要怎么写了?这里网上通用的方法就是这个,模拟controller.jsp去读取config.json文件,如果你运气好。那么走到这一步就不用走了。

        public class ServerController {
        
            @RequestMapping(value = "/config")
        
            public void config(HttpServletRequest request, HttpServletResponse response) {
        
                response.setContentType("application/json");
        
                String rootPath = ClassUtils.getDefaultClassLoader().getResource("").getPath() + "static/ueditor/jsp";
        
                try {
        
                    response.setCharacterEncoding("UTF-8");
        
                    String exec = new ActionEnter(request, rootPath).exec();
        
                    System.out.println(exec);
        
                    PrintWriter writer = response.getWriter();
        
                    writer.write(new ActionEnter(request, rootPath).exec());
        
                    writer.flush();
        
                    writer.close();
        
                } catch (IOException e) {
        
                    e.printStackTrace();
        
                }
        
            }
        
    • 方法二:这个方法是群里的一个小伙伴提供的,也是一个很不错的方法。那就是直接去config.jsp里面改变访问路径为config.json

在这里插入图片描述

如果这样做,我们就需要自己来写控制器,对文件的上传和下载进行处理了,而且由于ueditor返回的数据原因我们需要使用特定的json类来处理数据

在这里插入图片描述

你还需要引入一下的依赖才能使用

 <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
  • 第三种解决办法:也是我推荐的一种:添加项目对jsp的解析

    • ​ 先引入依赖

      <!--spring内置的对jsp的解析包-->
              <dependency>
                  <groupId>org.apache.tomcat.embed</groupId>
                  <artifactId>tomcat-embed-jasper</artifactId>
              </dependency>
      
    • 建立一个webapp文件夹将ueditor全部放在里面

在这里插入图片描述

这样我们的项目就能解析jsp文件了。为什么可以这样做?

首先我们知道springboot是通过内置的tomcat来启动项目的,然而内置的tomcat默认是不支持jsp解析的。我们添加那两个依赖就是开启了内置tomcat对jsp的解析支持,然后我们都知道,jsp的本质是什么,其实就是一个servlet。然后我们建立一个webapp目录(要带小蓝点哟不能是普通目录)这样tomcat就会去对该目录进行读取解析。然后后面的什么都不需要我们管了一切交给ueditor自己。

二、爬坑二

未找到上传数据:

我先来说一下原因:这是我们在第一个坑使用第二种方法解决之后可能会遇到的问题,原因是什么?

是因为我们通过自定义的控制器读取config.json之后,ueditor在使用上传下载的时候会这个request请求是被springboot封装过的,他不能对上传的数据进行读取,我去debug看为null。

解决办法,很多人给出的办法就是去修改ueditor那个类BinaryUploader重写,但是我不知道怎么对这种类进行重写,我在项目中新建了这个类,然后注入到ioc中好像也没有替代之前的那个类啊。不知道他们是怎么操作的。

后面我不说解决办法了,我贴一篇别人的博客吧

https://www.cnblogs.com/vincent4code/p/5809858.html

总结:

后注入到ioc中好像也没有替代之前的那个类啊。不知道他们是怎么操作的。

后面我不说解决办法了,我贴一篇别人的博客吧

https://www.cnblogs.com/vincent4code/p/5809858.html

总结:

如果不是有特殊需求的话,我还是建议使用我推荐的那种方法来解决,毕竟省时省力。还不容易出问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值