第三章:SpringBoot配置深刻-4. 模版渲染

在以前所见到的信息显示发现都是以 Rest 风格进行显示,可是很明显在实际的开发之中,全部数据的显示最终都应该交由页 面完成,可是这个页面并非*.jsp 页面,而是普通的*.html 页面,并且最为重要的是,此处所使用的渲染的页面采用的是模版方式 的显示,而在 Java 开发行业,对于前台的显示模版常见的一共有三类技术:FreeMarker、Velocity、thymeleaf(推荐使用),因而下 面就利用 thymeleaf 实现一个简单的模版渲染操做。css

一、 若是要想在项目之中去使用 thymeleaf 模版,那么应该首先进行相关支持依赖库的导入,修改 pom.xml 配置文件:html

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

完整pomjava

<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>cn.mldn</groupId>
		<artifactId>microboot</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>microboot-advance</artifactId>
	<name>microboot-advance</name>
	<url>http://maven.apache.org</url>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<dependencies>
		<!-- 添加模板 -->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>springloaded</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

	</dependencies>
</project>

二、 本次的开发依然要经过一个控制层跳转到页面之中进行信息显示。在 SpringMVC 的时代使用的是 ModelAndView 传递,而现 在在 SpringBoot 里面若是要传递直接在方法中定义一个 Model 参数便可。web

package cn.mldn.microboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import cn.mldn.microboot.util.controller.AbstractBaseController;

@Controller
public class MessageController extends AbstractBaseController {
    @RequestMapping(value = "/show", method = RequestMethod.GET)
    public String show(String mid, Model model) {
        model.addAttribute("url", "www.study.cn"); // request属性传递包装
        model.addAttribute("mid", mid); // request属性传递包装
        return "message/message_show"; // 此处只返回一个路径, 该路径没有设置后缀,后缀默认是*.html
    }
}

三、 如今的控制器之中使用的是“@Controller”注解,因此此时执行该控制器的方法后会进行跳转处理。若是如今要进行跳转 页面的定义,有严格要求:在CLASSPATH路径下(src/main/resources、src/main/view)必须创建有一个templates的目录,在这个目录里面保存有thymeleaf的全部相关页面,这些页面能够按照文件目录保存;spring

创建一个源代码目录:src/main/view;apache

而后项目上右键properties  进行设置提高为源代码目录app

四、 编写 message_show.html 页面(重要提示:该页面编写的时候全部的元素必定要完结jsp

<!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>

五、 运行服务,然后输入访问路径:http://localhost/show?mid=lgs;maven

 六、 若是如今咱们所定义的要访问的页面不是经过控制器跳转的怎么办?那么为了解决这样的问题,能够考虑在 thymeleaf 所在的 父路径之中“src/main/view”创建一个 static 的子目录,该目录保存的是全部静态页面;spring-boot

在之后的实际开发之中,像 js、css、images 等信息文件都要求放在 static 目录里面。

 七、 thymeleaf 默认的访问的页面路径的后缀为*.html,那么也能够经过修改 application.yml 配置文件进行变动:

spring:     # 表示该配置直接为Spring容器负责处理
  thymeleaf:
    suffix: .htm
  messages: # 表示进行资源配置
    basename: i18n/Messages,i18n/Pages  # 资源文件的名称
server:
  port: 80      # 此处设置的服务的访问端口配置

 这个时候你须要修改“src/main/view/templates/message”下的 message_show.html 页面为 message_show.htm 才能够正常访问。

相关文章
相关标签/搜索