springboot整合thymeleaf,网上各种报错,推荐看我这篇

项目目录

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模板取值

Title

springboot整合thymeleaf,网上各种报错,推荐看我这篇

运行截图

springboot整合thymeleaf,网上各种报错,推荐看我这篇显示问题可以参考thymeleaf官方文档解决