黄冈网站建设公司制作网站,邢台网站优化建设,4核8g云服务器,郑州男科医生排名目录
模板引擎
新建一个SpringBoot项目
pom.xml
application.properties
Book
BookController
bookList.html
编辑 项目总结 模板引擎 模板引擎是为了用户界面与业务数据分离而产生的#xff0c;可以生成特定格式的页面在Java中#xff0c;主要的模板引擎有JSP可以生成特定格式的页面在Java中主要的模板引擎有JSP少用ThyemeleafFreeMarkerVelocity等现在的大趋势是前后端分离开发但如果自己写一些练手项目使用模板引擎更快更方便Thymeleaf可以快速实现表单绑定、属性编辑器、国际化等功能Thymeleaf的基本语法规则 1、基础语法 - Thymeleaf 教程 (hxstrive.com)2、http://t.csdnimg.cn/aFWSO3、http://t.csdnimg.cn/Oa4rZ在此之前控制器都是直接返回字符串或者是跳转到其他URL地址但使用Thymeleaf后就可以让控制器跳转到项目中的某个 .html 文件SpringBoot项目中所有页面文件都要放在 src/main/resources/templates 目录下静态文件放在 src/main/static 目录下 项目总结 添加Thymeleaf依赖首先在你的Spring Boot项目的pom.xml文件中添加Thymeleaf的依赖。这样Spring Boot会自动配置Thymeleaf。创建Thymeleaf模板文件在src/main/resources/templates目录下创建Thymeleaf模板文件。Thymeleaf使用HTML文件作为模板你可以在其中使用Thymeleaf的语法来动态渲染页面。创建控制器创建一个Spring MVC控制器在其中设置需要在模板中渲染的数据。 启动应用程序运行Spring Boot应用程序访问控制器中定义的URL应该会看到使用Thymeleaf模板渲染的页面。 在项目开发中将Spring Boot框架、Thymeleaf与Spring MVC的视图技术及SpringBoot 的自动化配置集成在一起非常简便不需要额外的配置在开发中只需要关注Thymeleaf的语法即可 新建一个SpringBoot项目 项目结构 pom.xml 主要引入Thymeleaf依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependency ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactId!--最初的3.2.5版本太高了,需要手动降低成2.3.12--version2.3.12.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom/groupIdartifactIdspringboot_thymeleaf/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot_thymeleaf/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!--添加Thymeleaf依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/projectapplication.properties
spring.application.namespringboot_thymeleaf
server.port8080
# 访问template下的html文件
spring.thymeleaf.prefixclasspath:/templates/
# 开发时关闭缓存,不然没法看到实时页
spring.thymeleaf.cachefalse
# 设置Thymeleaf页面的后缀为.html
spring.thymeleaf.suffix.html
Book实体类
package com.springboot_thymeleaf;import java.util.Date;/*** 实体类*/
public class Book {private Integer id;private String name;private Date createTime;private String author;//getter,setter方法
}BookController控制器 Thymeleaf会根据控制器返回的字符串值寻找templates文件夹下同名的网页文件并跳转至该网页文件比如下例就是跳转到bookList.html文件 在 Spring 框架中Model 和 ModelAndView 是用于在控制器中向视图传递数据的两种方式在 Spring Boot 项目中通常建议使用 Model因为它更简单直观适合大多数情况。只有在需要更复杂的场景或更精确地控制视图名称时才需要使用 ModelAndView。 package com.springboot_thymeleaf.controller;import com.springboot_thymeleaf.Book;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** Controller这是一个Spring框架的注解它用于将类标记为控制器Controller。* 使用Controller注解的类被Spring认为是处理HTTP请求的控制器* 并且可以处理来自客户端的请求。它通常与RequestMapping注解一起使用用于映射URL路径到相应的处理方法。*/
Controller
public class BookController {/*** GetMapping(/books): 这是一个Spring框架的注解它用于映射HTTP GET请求到处理方法。* 在BookController中GetMapping(/books)注解表示当浏览器发起GET请求到/books路径时* 将调用books()方法来处理该请求。books()方法会返回一个ModelAndView对象用于渲染书籍列表的视图。*/GetMapping(/books)public String books(Model model){// 添加两本书的记录ListBook books new ArrayList();Book book1 new Book();book1.setId(1);book1.setName(Spring Boot企业级应用开发);book1.setCreateTime(new Date());book1.setAuthor(李白);Book book2 new Book();book2.setId(2);book2.setName(Node.js Web开发实战);book2.setCreateTime(new Date());book2.setAuthor(白居易);books.add(book1);books.add(book2);// 使用addAttribute(String attributeName, Object attributeValue)方法向Model中添加属性。// 属性的名称是一个字符串可以在视图中使用它来检索属性值。属性值可以是任何Java对象例如字符串、数字、集合等。model.addAttribute(books, books);return bookList.html;}
}bookList.html动态网页文件
!DOCTYPE html
!--导入Thymeleaf的命名空间--
html langen xmlns: xmlns:thhttp://www.w3.org/1999/xhtml
headmeta charsetUTF-8title图书列表/title
/head
body
table border1 width100%trtd序号/tdtd书名/tdtd作者/td/tr!--${}: 变量表达式,Thymeleaf获取一个值的语法是th:text${title}--tr th:eachbook:${books}!--四个单元格内容--td th:text${book.id}/td th:text${book.name}/td th:text${#dates.format(book.createTime,yyyy-MM-dd)}/td th:text${book.author}//tr
/table/body
/html
启动项目浏览器访问http://localhost:8080/books