我目前在使用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>
将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;
}
}
问题产生于您的第一个endpoint,其中您没有定义Calc
type属性,因此解析主页。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组件有以下模板,但它抛出了一个模板解析错误。 这是错误消息-我的