最近在自学Sringboot web开发,用到 thymeleaf 引用静态路径下的html文件时,使用demo 测试,总是返回return 中的 字符串,没有和templates文件夹下的html文件关联,付下demo控制器的代码、html文件:
问题源码
Controller类:
@RestController
public class Controller {
@RequestMapping("/hello")
public String helloController(){
return "hello!";
}
@RequestMapping("/success")
public String success(){
//classpath:/templates/success.html
return "success";
}
}
success.html 代码:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>成功!</h1>
<!--th:text 将div里面的文本内容设置为 -->
<div th:text="${123}">这是显示欢迎信息</div>
</body>
</html>
类路径:
运行结果:访问success 只返回了字符串success没有引用html文件
解决方法
1、经过查资料发现问题出在@RestController注解,这个注解会使@Controller注解失效,而且在方法不能加上@Reponsebody注解
附上改进代码:
@org.springframework.stereotype.Controller
//@RestController
public class Controller {
@RequestMapping("/hello")
public String helloController(){
return "hello!";
}
@RequestMapping("/success")
public String success(){
//classpath:/templates/success.html
return "success";
}
}
2、检查pom文件的thymeleaf依赖是否导入正常
<!--引入thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
在Maven里reimport一下
3、检查插件是否打开
springboot启动成功: