【问题标题】:NoSuchMethodError: org.thymeleaf.standard.StandardDialect with spring 4 and thymeleaf 3NoSuchMethodError:org.thymeleaf.standard.StandardDialect 与 spring 4 和 thymeleaf 3
【发布时间】:2026-02-13 21:55:01
【问题描述】:

您好,我的项目使用的是 spring 4 和 thymeleaf 3。我已经根据他们的文档更改了所有内容。当我在 wildfly 10 上运行应用程序时,它显示了一些错误..

21:35:15,447 WARN  [org.springframework.web.context.support.XmlWebApplicationContext] (ServerService Thread Pool -- 9) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'templateEngine' defined in class path resource [spring/ViewConfig.xml]: Instantiation of bean failed; nested exception is java.lang.NoSuchMethodError: org.thymeleaf.standard.StandardDialect.<init>(Ljava/lang/String;Ljava/lang/String;I)V
21:35:15,458 ERROR [org.springframework.web.servlet.DispatcherServlet] (ServerService Thread Pool -- 9) Context initialization failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'templateEngine' defined in class path resource [spring/ViewConfig.xml]: Instantiation of bean failed; nested exception is java.lang.NoSuchMethodError: org.thymeleaf.standard.StandardDialect.<init>(Ljava/lang/String;Ljava/lang/String;I)V
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1050)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)  

Themeleaf3 依赖

<dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring4</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>nz.net.ultraq.web.thymeleaf</groupId>
        <artifactId>thymeleaf-layout-dialect</artifactId>
        <version>1.0.6</version>
    </dependency>

模板解析器配置

<bean id="templateResolver"
        class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".html" />
        <property name="templateMode" value="HTML5" />
    </bean>

    <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
        <property name="templateResolver" ref="templateResolver" />
        <property name="dialects">
            <set>
                <bean class="org.thymeleaf.standard.dialect.StandardDialect" />
                <bean class="nz.net.ultraq.web.thymeleaf.LayoutDialect" />
            </set>
        </property>
    </bean>

    <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
        <property name="templateEngine" ref="templateEngine" />
    </bean>

【问题讨论】:

    标签: thymeleaf spring-4


    【解决方案1】:

    我不知道你是否解决了这个问题,但你在这里的帖子是我在整个互联网上获得的关于这个问题的唯一结果。

    我花了几个小时才终于找到了我的原因。出于某种原因,我在项目的 /lib 文件夹中有 Thymeleaf 2.14-RELEASE jar。我的 IDE(Intellij 2016.2.5)使用的是这个版本,而不是 maven 的 3.0.5-RELEASE 版本。 IDE 中没有明显的提示表明这种情况正在发生。

    主要问题是 2.14 中的 StandardDialect 没有构造函数(因此出现了奇怪的错误),但 3.0.5 中的构造函数没有。

    我绞尽脑汁,因为这个错误没有合乎逻辑的原因,我希望这能拯救任何可怜的灵魂。

    【讨论】:

      【解决方案2】:

      我有同样的问题,我刚刚删除了所有额外的 thymeleaf 依赖项并将其添加到 pom.xml 并为我工作。

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-thymeleaf</artifactId>
      </dependency>
      

      【讨论】:

        【解决方案3】:

        遇到同样的问题,删除后它对我有用:

            <dependency>
                <groupId>org.thymeleaf</groupId>
                <artifactId>thymeleaf-spring4</artifactId>
                <version>2.1.6.RELEASE</version>
            </dependency>
        

        【讨论】:

          最近更新 更多