springboot整合thymeleaf,网上各种报错,推荐看我这篇
项目目录
springboot版本1.5.20.RELEASE
引入依赖
<!-- 实现web功能 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 模版 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 引入此依赖不然无法显示数据-->
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.12</version>
</dependency>
编写Controller内容
@Controller
public class HelloController {
@RequestMapping("hello")
public String greeting(ModelMap modelMap){
modelMap.addAttribute("name","其实我是个新手");
modelMap.addAttribute("host","https://www.baidu.com");
return "hello";
}
}
配置统一拦截器
public class ErrorInterceptor implements HandlerInterceptor {
/**
* Controller方法调用之前调用,用于接收请求
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @return
* @throws Exception
*/
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
return true;//只有返回true才会继续向下执行,返回false取消当前请求
}
/**
* 请求拦截
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param modelAndView
* @throws Exception
*/
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
if(httpServletResponse.getStatus() == 500){
modelAndView.setViewName("/error/500");
}
else if(httpServletResponse.getStatus() == 404){
modelAndView.setViewName("/error/404");
}
}
/**
* 清理资源,当preHandle方法返回true调用
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param e
* @throws Exception
*/
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
启动类
@SpringBootApplication
@Controller
public class DemoApplication {
private static final Logger logger = Logger.getLogger(DemoApplication.class);
@RequestMapping("/")
public String greeting(){
return "index";
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
logger.info("项目启动");
}
}
配置文件application.properties
服务端口
server.port=8080
#spring boot从控制台打印出来的日志级别只有ERROR, WARN 还有INFO,如果你想要打印debug级别的日志
debug=true
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
#thymeleaf start
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false
#静态资源映射
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/
themyleaf模板取值
运行截图
显示问题可以参考thymeleaf官方文档解决