SpringBoot首页投稿(暂停使用,暂停投稿)

Spring Boot 中 Controller 返回HTML页

2017-08-16  本文已影响1729人  妖云小离

由于Spring Boot 内嵌了 Tomcat 容器,所以不用把项目打成war包,再放到Tomcat中去运行。但是随之出现了个问题,基于Tomcat的Web应用都有一个/webapp目录来存放前端页面和静态资源等文件。那么Spring Boot中应该放在哪里呢?

目录/resources代替了webapp

如果你是用Spring Initializr新建的项目的话,那么当你打开项目,就会看到:


Spring Initializr新建的项目的目录

对,/resources目录下已经存在了两个包:
/static 用来存放静态文件
/templates 用来存放前端页面

Ps:没有目录的话可以自己创建

编写hello.html

我们写一个最简单的HTML页面,放在/templates下:

<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello World</title>
</head>
<body>
Hi!!!!!!!!!!!!!!!!!!!
</body>
</html>

可能你注意到了,在<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">中多了点东西,没关系,继续往下看。

编写Controller返回hello.html

我们写一个Spring MVC中最简单的Controller,用来返回hello.html:

@Controller
public class IndexController {

    @RequestMapping("/hello")
    public String hello(){
        System.out.println("Hello!!!");
        return "hello";
    }

}

然后通过Postman来测试一下接口:

测试一下接口

可以看到报错了,错误提示说,可能是没有指定视图。

我们知道在传统的Tomcat Web应用里面,还需要配置web.xml与SpringMVC。

不过也太麻烦啦,所以Spring Boot就简化了这些配置,并且推荐使用Thymeleaf前端模板引擎。
前面提到的多了点东西也就是这个引擎的语法。

引入Thymeleaf依赖

我用Gradle做依赖管理:

compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: '1.5.4.RELEASE'

配置application.properties

# 模板配置
# 这个开发配置为false,避免改了模板还要重启服务器
spring.thymeleaf.cache=false
# 这个是配置模板路径的,默认就是templates,可不用配置
spring.thymeleaf.prefix=classpath:/templates/
# 这个可以不配置,检查模板位置
spring.thymeleaf.check-template-location=true
# 下面3个不做解释了,可以不配置
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html

# 模板的模式
spring.thymeleaf.mode=HTML5

继续测试接口

成功啦!

可以看到返回的就是hello.html

Thymeleaf语法也是个坑,有时间再去看看吧~

上一篇 下一篇

猜你喜欢

热点阅读