Spring Boot + thymeleaf 后台与页面(二)

Spring Boot推荐使用thymeleaf模板完成与页面的交互(已不支持JSP某些特性,不推荐JSP)

步骤

在一个Spring Boot Web项目基础上,也可以参考我前一篇文章建立的项目

1、pom.xml添加thymeleaf依赖

<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.zit</groupId>
  <artifactId>SpringBoot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.BUILD-SNAPSHOT</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
   
    <!-- Spring data jpa -->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-jpa</artifactId>
  </dependency>
  
  <!-- thymeleaf模板 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
  </dependency>
 
</dependencies>

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/libs-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

</project>



2、src/main/resources是默认的静态资源目录,在他下面新建一个文件夹templates

 他是Spring Boot约定默认的页面路径

在他下面创建hello.html页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
你真好
<h1 th:text="${msg}"></h1>
</html>

3、application.properties

在其中关闭thymeleaf缓存

#DB Configuration:
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password =

#JPA Configuration: 
spring.jpa.database=MySQL
spring.jpa.show-sql=true 
spring.jpa.generate-ddl=true 
spring.jpa.hibernate.ddl-auto=update 
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy 

#关闭thymeleaf缓存
spring.thymeleaf.cache=false

4、控制器Controller类中:

注意:与web页面交互,用@Controller

package com.zit;

import java.util.List;

import javax.annotation.Resource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.zit.dao.UserLoginDao;
import com.zit.model.UserLogin;

@Controller
@SpringBootApplication
@EnableAutoConfiguration
public class UserLoginController {

    @Resource
    UserLoginDao userLoginDAO;

   
    @RequestMapping("/list")
    public List<UserLogin> list(){
     return (List<UserLogin>) userLoginDAO.findAll();
    }
   
    @RequestMapping("/test")
    public String index(ModelMap model){
        model.addAttribute("msg","中华人民共和国");
     return "hello";

    }
   
    public static void main(String[] args) {
  SpringApplication.run(UserLoginController.class, args);
 }
}

访问:http://localhost:8080/test

即可跳转到hello.html页面

 

如果访问:http://localhost:8080/list/

它在页面上返回的是Json数据,Rest风格

所以在类上面的@Controller改为@RestController即可

原文地址:https://www.cnblogs.com/Donnnnnn/p/8588570.html