当前位置: 首页 > 知识库问答 >
问题:

蒂梅拉夫;“模板分析期间出错”

叶健柏
2023-03-14

我目前在使用springboot时遇到问题,并出现错误“模板解析期间发生错误(template:“class path resource[templates/mainpage.html])”。

我曾尝试重新安装不同版本的lombok,因为我认为这可能是问题所在,但迄今为止似乎没有任何效果。我使用gradle和Eclipse作为IDE。感谢您的任何帮助,因为不同的springBootVersions,找到了一些有相同问题的线程,但尝试了新的和旧的,它也没有为我修复。

我的build.gradle看起来像这样:

buildscript {
ext {
    springBootVersion = '2.0.3.RELEASE'
}
repositories {
    mavenCentral()
}
dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'test'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
 mavenCentral()
}

dependencies {
  compile('org.springframework.boot:spring-boot-starter-thymeleaf')
  compile('org.springframework.boot:spring-boot-starter-web')
  runtime('org.springframework.boot:spring-boot-devtools')
  testCompile('org.springframework.boot:spring-boot-starter-test')
  compileOnly 'org.projectlombok:lombok:1.18.2'
}

我的控制器:

package test;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

@Controller
public class ExampleController {

    @GetMapping(path = "/")
    public String mainpage(Model model) {
        return "mainpage";
    }

    @PostMapping(path = "/")
    public String calculate(Model model, Calc cal) {
        model.addAttribute("cal", cal);
        return "mainpage";
    }
}

lombok的Calc.java文件:

@Data
public class Calc {

    private Long val1;
    private Long val2;

    public Long getSum() {
        return this.val1 + this.val2;
    }
}

还有我的主页.html:

<html>
    <title>Homepage</title> 
    <body>
        <form method="post">
            <input type="text" name="val1" th:value="${cal.val1}"> </input>
            <input type="text" name="val2" th:value="${cal.val2}"> </input>
            <input type="submit"></input>	
        </form> 
        <p th:text="| ${cal.val1} and ${cal.val2} equals ${cal.sum}|"></p>
    </body>
</html>

共有2个答案

景育
2023-03-14

Spring引导版本降级为“1.5.10.RELEASE”,并将以下类添加到应用程序包中。

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Bean
    @Description("Thymeleaf template resolver serving HTML 5")
    public ClassLoaderTemplateResolver templateResolver() {
        ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateResolver.setPrefix("templates/");
        templateResolver.setCacheable(false);
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setCharacterEncoding("UTF-8");
        return templateResolver;
    }

    @Bean
    public ServletContextTemplateResolver servletContextTemplateResolverResolver() {
        final ServletContextTemplateResolver resolver =
                new ServletContextTemplateResolver();
        resolver.setPrefix("/WEB-INF/templates/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("HTML5");
        resolver.setCacheable(false);
        resolver.setCharacterEncoding("UTF-8");
        return resolver;
    }

    @Bean
    @Description("Thymeleaf template engine with Spring integration")
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.addTemplateResolver(new UrlTemplateResolver());
        templateEngine.addDialect(new SpringSecurityDialect());
        templateEngine.setTemplateResolver(templateResolver());
        return templateEngine;
    }


    @Bean
    @Description("Thymeleaf view resolver")
    public ViewResolver viewResolver() {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine());
        viewResolver.setCharacterEncoding("UTF-8");
        return viewResolver;
    }
}
丌官飞章
2023-03-14

问题产生于您的第一个endpoint,其中您没有定义Calctype属性,因此解析主页。html失败的原因是缺少该属性,并且未能将其类类型(字段)映射到html中引用的类。

您应该使用 操作员(这是正确的处理方式);

<input type="text" name="val1" th:value="${cal?.val1}"> </input> 

或者只在第一个endpoint中传递一个空的Calc对象作为属性;

@GetMapping(path="/")
public String mainpage(Model model) {

    model.addAttribute("cal", new Calc());
    return "mainpage";
}

< code >“?”运算符(安全导航运算符)适用于空情况,例如< code>cal?. val1表示使用< code>cal属性的< code>val1字段值,如果< code>cal非空,则使用空。

 类似资料:
  • 代码顺序 IndexController 订单控制器 订单生成器 订单服务 html 错误 模板解析时出错(模板:"类路径资源[模板/订单/list.html]") 评估SpringEL表达式的异常:“order.id”(模板:“订单/列表”-第19行,第9栏) EL1008E:在“reactor.core.publisher”类型的对象上找不到属性或字段“id”。FluxOnAssembly’-

  • 我正在尝试打开我的html页面,但每当我尝试访问本地主机时,我都会遇到这些错误。 白标签错误页面 我将附上所涉及的文件: 家庭控制器: 用户域类: 索引.html:

  • 我创建了带有模块(Patients、Notes、Reports、Domain)的Maven多模块应用程序。问题出在使用MongoDB的模块Notes中。 我想运行GET addNote视图时遇到了问题-@GetMapping(“/note/add/{patientId}”)。GET注释列表视图工作正常,其他视图我也有。 控制台问题: 注意控制器: 病人注意: 注意: 注意存储库: 模板-注释/ad

  • 我刚刚开始使用springboot,我被这个问题卡住了。没有数据通过控制器。我只想跳转到“index.html”页面,这是一个模板,从bootstrap下载。 这是我的控制器。 index.html. 堆栈跟踪如下。 我想知道我的依赖关系有什么问题吗?

  • 我不知道我的视图出了什么问题,但它不可能工作,即使设置正确,视图也总是出错。我不知道是否还有其他方法可以做到这一点,但胸腔总是失败。 错误是这样的- 这是我的控制器 我的观点

  • 我的angular 2组件有以下模板,但它抛出了一个模板解析错误。 这是错误消息-我的