ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

safeLab(7)记录---从数据库中取内容并用kindeditor显示

2021-05-04 18:33:39  阅读:22  来源: 互联网

标签:safeLab kindeditor --- 拦截器 放行 images 权限 RuntimeConstant


springboot使用kindeditor富文本编辑器遇到的问题及解决方案:

问题:

  1. springboot如何调用kindeditor?
  2. 集成kindeditor后,前端富文本编辑框无法显示,后端控制台提示:“该请求无权限,重定向到无权限提示页面,url=/kindeditor/themes/default/default.css”
  3. 由于数据库中通过kindeditor保存的内容中img的路径是/images/.....,而我们将图片存到了/static/admin/images中,导致图片加载不出来

解决方案:

  1. <!-- 富文本编辑器,下载好kindeditor后复制粘贴到项目中,然后在需要使用富文本编辑的页面导入所需要的脚本和css库 -->
    <link rel="stylesheet" href="/sell/kindeditor/themes/default/default.css"/>
    <script charset="utf-8" src="/sell/kindeditor/kindeditor-all.js"></script>
    <script charset="utf-8" src="/sell/kindeditor/lang/zh-CN.js"></script>
    //初始化KindEditor编辑器
    <script type="text/javascript">
        var editor;
        KindEditor.ready(function (K) {
            editor = K.create('textarea[name="content"]', {
                //是否允许浏览服务器已上传文件,默认是false
                allowFileManager: true,
                uploadJson :"/sell/speech/uploadFile"
            });
        });
    </script>
    <!--结合<textarea>标签使用-->
    <div class="input-group m-b-10">
    	 <span class="input-group-addon">实验环境</span>
    		<textarea style="width: 979px; height: 137px;" id="ambient" name="ambient" type="text" class="form-control" >
    			<#if courseDl.experimentAmbient??>
    		             ${courseDl.experimentAmbient!''}
    			</#if>
    		</textarea>
    </div>

     

  2. 无权限是由于后台定义了拦截器,kindeditor相关资源没有放行,做法就是在RuntimeConstant.java类中的权限无需拦截列表中加上
    "/admin/kindeditor/**"

    这里多说一句,项目使用的权限拦截器拦截原理是:实现了HandlerInterceptor接口,通过将欲访问的url与用户角色具有的权限中的url进行对比,用户不具有权限的URL不会放行;自动放行的URL放在了RuntimeConstant.java中

    //无论是放行路径,还是具体拦截方法,都需要通过这个拦截器配置类生效
    @Configuration
    public class WebConfig implements WebMvcConfigurer {
    	
    	@Autowired
    	private LoginInterceptor loginInterceptor;
    	
    	@Autowired
    	private AuthorityInterceptor authorityInterceptor;
    	
    	@Override
    	public void addInterceptors(InterceptorRegistry registry) {
    	    registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns(RuntimeConstant.loginExcludePathPatterns);
    	    registry.addInterceptor(authorityInterceptor).addPathPatterns("/**").excludePathPatterns(RuntimeConstant.authorityExcludePathPatterns);
    	}
    
    }

     

  3. 由于修改数据库太麻烦,于是决定将图片直接存放在/static/images,但过程遇到了图片依旧无法加载的问题!为什么呢?

    仔细一想还是因为权限问题,新的图片路径在拦截器中没有放行!
    于是在RuntimeConstant.JAVA中添加了
    /images/**
    进行权限放行

    至此已经完成富文本编辑器的显示功能

 

标签:safeLab,kindeditor,---,拦截器,放行,images,权限,RuntimeConstant
来源: https://blog.csdn.net/HUGEJOKER/article/details/116396423

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有