SpringBoot模板渲染介绍
1、模板渲染
在之前所见到的信息显示发现都是以Rest风格进行显示,但是很明显在时间的开发之中,所有的数据的显示最终都应该交由页面完成,但是这个页面并不是*.jsp页面,而是普通的*.html页面,而且最为重要的是此处所使用的渲染的页面采用的模板方式的显示,而在java开发行业,对于前台的显示模板常见的一共有三类技术:FreeMarker、Velocity、thymeleaf(推荐使用)。下面就利用thymeleaf实现一个简单的模板渲染操作。
2、如果要想在项目之中去使用thymeleaf模板,那么应该首先进行相关支持依赖库的导入,修改pom.xml配置文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

3、本次的开发依然通过一个控制层跳转到页面之中进行页面显示。在SpringMVC的时候使用的是ModelAndView传递,而在SpringBoot里面如果要传递直接在方法中定义一个Model参数即可。
package com.gwolf.controller;
import com.gwolf.util.controller.AbstractBaseController;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class MessageController extends AbstractBaseController{
@RequestMapping(value="/show", method = RequestMethod.GET)
public String show(String mid, Model model) {
model.addAttribute("url","www.baidu.com"); //request属性传递包装
model.addAttribute("mid",mid);
return "message/message_show"; //此处指返回一个路径,该路径没有设置后缀,默认为*.html
}
}

4、现在的控制器之中使用的是“@Controller”注解,所以此时执行该控制器的方法后会进行跳转处理。如果现在要进行跳转页面的定义有严格要求:在CLASSPATH路径下(src/main/resources、src/main/view)必须建立有一个templates的目录,在这个目录里面保存有thymeleaf的所有相关页面,这些页面可以按照文件目录保存;
下面为了标准起见,建立一个源代码目录:src/main/view。并且在这个目录下面还要创建一个templates目录,名字一定不能错。


5、编写message_show.html页面(重要提示:该页面编写的时候所有的元素一定要完结)。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>SpringBoot模板渲染</title>
<meta http-equiv="content-type"
content="text/html;charset=UTF-8" />
</head>
<body>
<p th:text="'官方网站:' + ${url}" />
<p th:text="'用户名:' + ${mid}" />
</body>
</html>

6、运行服务,而后输入访问路径:http://localhost/show?mid=baidujava

7、如果现在我们所定义的要访问的页面不是通过控制器跳转的怎么办?那么为了解决这样的问题,可以考虑在thymeleaf所在的父路径之中“src/main/view”建立一个static的子目录,该目录保存的是所有静态页面;

8、在以后的实际开发之中,想js,css,images等信息文件都要求放在static目录中。thymeleaf默认的访问的页面路径的后缀为*.html,那么也可以通过修改application.yml配置文件进行变更。
server:
port: 80
spring:
messages:
basename: i18n/Messages,i18n/Pages #资源文件的名称
thymeleaf:
suffix: .htm
