【SpringBoot框架04】视图集成
思维导图
一、FreeMarker视图集成
(1)Starter坐标引入
配置pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lcy</groupId>
<artifactId>springboot03</artifactId>
<version>1.0-SNAPSHOT</version>
<name>springboot03</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(2)添加FreeMarker配置信息
改application.yml添加FreeMarker基本配置
spring:
profiles:
active: dev
freemarker:
# 设置后缀名
suffix: .ftl
content-type: text/html
charset: utf-8
template-loader-path: classpath:/view/
(3)编写控制器转发视图
IndexController.java
package com.lcy.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@RequestMapping("/index")
public String index(){
return "index";
}
}
(4)在VIEW目录下添加.ftl视图,启动Starter访问
index.ftl
Hello Spring
IndexController
package com.lcy.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
public class IndexController {
@RequestMapping("/index")
public String index(){
return "index";
}
}
启动Starter
@SpringBootApplication
public class Starter {
private static Logger logger = LoggerFactory.getLogger(Starter.class);
public static void main(String[] args) {
logger.info("这是一个springboot日志输出");
SpringApplication application = new SpringApplication(Starter.class);
application.setBannerMode(Banner.Mode.OFF);
application.run();
}
}
成功
这里的浏览器输入可能不一样,注意查看日志打印的端口号和路径
二、Thymelefaf视图集成
(1)Starter坐标引入
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lcy</groupId>
<artifactId>springboot03</artifactId>
<version>1.0-SNAPSHOT</version>
<name>springboot03</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(2)添加thymeleaf配置信息
application.yml
spring:
thymeleaf:
prefix: classpath:/html/
cache: false
# 关闭thymeleaf页面缓存
(3)编写IndexController控制器转发视图
IndexController.java
@Controller
public class IndexController {
@RequestMapping("index")
public String index(Model model){
model.addAttribute("msg","success!!!!!!!!!!!");
return "index";
}
}
(4)添加视图
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf</title>
</head>
<body>
<!-- 获取请求域的值-->
<h2 th:text="${msg}"></h2>
</body>
</html>
(5)启动Starter访问
@SpringBootApplication
public class Starter {
private static Logger logger = LoggerFactory.getLogger(Starter.class);
public static void main(String[] args) {
logger.info("这是一个springboot日志输出");
SpringApplication application = new SpringApplication(Starter.class);
application.setBannerMode(Banner.Mode.OFF);
application.run();
}
}
不成功看下自己的profile配置