分享

【Springboot+Themeleaf模板+Shiro标签】找不到类AbstractProcessorDialect解决

 极风狼 2019-03-29

本人在学习使用Themeleaf模板,直接上手项目,然后想在themeleaf上使用shiro标签实现权限控制,然后踩到这个坑,上网一查这方面的知识少之又少。踩下去两天才找到解决方法。

Caused by: java.lang.ClassNotFoundException: org.thymeleaf.dialect.AbstractProcessorDialect

at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

... 43 more

我的maven上springboot是1.5.2.RELEASE,

thymeleaf依赖和shiro整合依赖(整合依赖版本是我按网上教程找来的)

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>com.github.theborakompanioni</groupId>
  7. <artifactId>thymeleaf-extras-shiro</artifactId>
  8. <version>2.0.0</version>
  9. </dependency>

ClassNotFoundException:org.thymeleaf.dialect.AbstractProcessorDialect   找不到类AbstractProcessorDialect(自定义标签抽象类,需要自定义标签需要继承此类,重写他的方法)
@Override
    public Set<IProcessor> getProcessors(String dialectPrefix) {}

而这里的问题出在:使用的SpringBoot1.5.2.RELEASE版本集成Thymeleaf时,它使用的版本是2.1.5.RELEASE,而在这个版本中没有AbstractProcessorDialect类。

解决方法一:可以把Thymeleaf版本更改为3.0.7.RELEASE

<thymeleaf.version>3.0.7.RELEASE</thymeleaf.version>再加上<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>

解决方法二:还可以把thymeleaf-extras-shiro的版本改为1.2.1

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多