SpringBoot 集成 Jsp、Thymeleaf 模板引擎 + Thymeleaf 基本使用

引入 jsp 的集成 jar包:

jstl

jstl

1.2

org.apache.tomcat.embed

tomcat-embed-jasper

引入 jsp 运行插件:

springboot_day1

org.springframework.boot

spring-boot-maven-plugin

配置文件 中 配置 视图解析器

spring.mvc.view.prefix=/ # / 代表访问项目中webapp中页面

spring.mvc.view.suffix=.jsp

启动项目


  • 第一种方式:使用插件启动

在这里插入图片描述

  • 第二种方式:使用 idea 中指定工作目录启动[推荐]

在这里插入图片描述

在这里插入图片描述

通过 http://localhost:8080/index.jsp 可以访问到 默认 的 index.jsp 界面。

控制器访问 jsp 页面


创建一个 /webapp/back/index.jsp 页面:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

<%@page contentType=“text/html; UTF-8” pageEncoding=“UTF-8” isELIgnored=“false” %>

this is Back Directory Hello World!

获取项目名字: ${requestScope.name} ${name}

<c:forEach items=“${requestScope.users}” var=“user”>

ID: ${user.id}
NAME: ${user.name}
AGE: ${user.age}
BIR: ${user.bir}


---------------------------------------------

</c:forEach>

配置文件中通过 server.servlet.jsp.init-parameters.developmetn=true 开启热部署了

写一个控制器:

@Controller // 注意区别, 这里不用 @RestController

@RequestMapping(“user”)

public class UserController {

@GetMapping(“findAll”)

public String findAll(HttpServletRequest request, Model model) {

System.out.println(“查询所有”);

model.addAttribute(“name”, “zhenyu”);

List users = new ArrayList<>(Arrays.asList(

new User(“1”, “zhenyu”, 20, new Date()),

new User(“2”, “chenchen”, 23, new Date())));

model.addAttribute(“users”, users);

return “back/index”; // 视图解析器: 前缀+逻辑名+后缀 = /back/index

// return “index”; 视图解析器: 前缀+逻辑名+后缀 = /index.jsp

}

}

访问路径:localhost:8080/user/findAll

在这里插入图片描述

集成 Thymeleaf 模板

==================================================================================

Thymeleaf 是跟 VelocityFreeMarker 类似的模板引擎,它可以完全替代 JSP,相较与其他的模板引擎相比,Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。(jsp 必须运行服务器才能访问)

引入依赖 + 配置文件


org.springframework.boot

spring-boot-starter-thymeleaf

配置文件:

使用模板目录

spring.thymeleaf.prefix=classpath:/templates/

使用模板后缀

spring.thymeleaf.suffix=.html

使用模板编码

spring.thymeleaf.encoding=UTF-8

使用模板响应类型

spring.thymeleaf.servlet.content-type=text/html

默认无法直接访问templates下的页面, 需要设置

以后static下放css与js, templates下放页面

spring.resources.static-locations=classpath:/templates, classpath:/static

引入下面的依赖是为了可以直接访问 html 页面:

spring.resources.static-locations=classpath:/templates, classpath:/static

例如 不经过控制器 访问 resources/templates/hello.html:如果不配置上面则无法访问。

http://localhost:8080/index.html

控制器访问 html 页面


使用 Thymeleaf 模板页面 默认放在 resources/templates 目录中

创建一个 /resources/templates/hello.html 页面:

hello

SpringBoot 集成 Thymeleaf!!!

编写控制器:

@Controller

@RequestMapping(“/hello”)

public class HelloController {

@GetMapping(“/hello”)

public String hello() {

System.out.println(“hello spring boot!”);

return “hello”;

}

}

测试访问:

http://localhost:8080/hello/hello

在这里插入图片描述

Thymeleaf 基本使用

=================================================================================

基本语法包含以下:后面介绍一些常用的,更具体的用到还需要查阅资料。

在这里插入图片描述

在页面中使用 Thymeleaf 时必须加入以下命名空间:

展示单个数据 th:text、th:utext、th:value


控制器中设置数据:

// 控制器中设置数据

model.addAttribute(“name”, “振宇”); // 或者 request.setAttribute(“name”, “振宇”);

model.addAttribute(“username”, “yusael”);

  • 页面中获取原样数据(不解析数据中的 html 标签):
  • 获取并解析含有 html 标签 的数据:

  • 将数据赋值给表单元素:

总结:

  1. 使用 th:text="${属性名}" 获取对应数据,获取数据时会将对应标签中数据清空;

  2. 使用 th:utext="${属性名}" 获取对应的数据,可以将数据中 html 先解析再渲染到页面;

  3. 使用 th:value="${属性名}" 获取数据直接作为表单元素 value 属性

展示对象数据


// 控制器中设置数据

model.addAttribute(“user”, new User(“1”, “振宇”, 21, new Date()));

id:

name:

age:

bir: ====日期格式化

条件展示数据 th:if、运算符


// 控制器中设置数据

model.addAttribute(“user”, new User(“1”, “振宇”, 21, new Date()));

青年

运算符:

  • gt : great than >

  • ge : great equal >=

  • eq : equal ==

  • lt : less than <

  • le : less equal <=

  • ne : not equal !=

展示多条数据 th:each


// 控制器中设置数据

List users = Arrays.asList(

new User(“2”, “张三”, 23, new Date()),

new User(“3”, “李四”, 24, new Date())

);

model.addAttribute(“users”, users);

  • 直接遍历集合:
      • 遍历时获取遍历状态:
      • 当前遍历的次数:
      • 当前遍历的索引:

        当前遍历是否是奇数行:

        当前遍历是否是偶数行:

        最后

        自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

        深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

        因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

        既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

        如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

        由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

        最后

        自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

        深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

        因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

        [外链图片转存中…(img-eclSwE4y-1715069036647)]

        [外链图片转存中…(img-EhqHJ5Cw-1715069036647)]

        [外链图片转存中…(img-lgePyT4T-1715069036648)]

        既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

        如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

        由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值