IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot——Thymeleaf 的表达式 -> 正文阅读

[Java知识库]SpringBoot——Thymeleaf 的表达式

目录

1?Thymeleaf标准变量表达式

?2 Thymeleaf选择变量表达式(了解,不推荐使用)

?3?URL 表达式

4 代码演示?

4.1 写一个实体

4.2 写一个控制层

4.3 核心配置文件

4.4 前端展示数据页面以及结果截图

4.4.1 userDetail页面(选择和标准变量表达式)

?

4.4.2? url页面(URL 表达式)


1?Thymeleaf标准变量表达式

语法: ${...}

说明:标准变量表达式用于访问容器(tomcat)上下文环境中的变量,功能和 EL 中的 ${} 相同。Thymeleaf 中的变量表达式使用 ${变量名} 的方式获取 Controller 中 model 其中的数据。

.注意:th:text="" 是 Thymeleaf 的一个属性,用于文本的显示

?2 Thymeleaf选择变量表达式(了解,不推荐使用)

语法:*{...}

说明:选择变量表达式,也叫星号变量表达式,使用 th:object 属性来绑定对象选择表达式首先使用 th:object 来绑定后台传来的 User 对象,然后使用 * 来代表这个对象,后面 {} 中的值是此对象中的属性。

选择变量表达式 *{...} 是另一种类似于标准变量表达式 ${...} 表示变量的方法

选择变量表达式在执行时是在选择的对象上求解,而${...}是在上下文的变量 Model 上求解,这种写法比标准变量表达式繁琐,只需要大家了解即可

?3?URL 表达式

语法:@{...}

说明:主要用于链接、地址的展示,可用于<script src="...">、<link href="...">、<a href="...">、<form action="...">、<img src="">等,可以在 URL 路径中动态获取数据。

4 代码演示?

4.1 写一个实体

package com.liuhaiyang.springboot.entity;

public class User {
    private Integer id;
    private String name;
    private  Integer age;
//set()和get(),toString()
}

4.2 写一个控制层

package com.liuhaiyang.springboot.controller;

import com.liuhaiyang.springboot.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {
    @RequestMapping("/user/detail")
    public String userDetail(Model model){
        User user =new User();
        user.setAge(20);
        user.setId(100888);
        user.setName("zhansgan");
        model.addAttribute("user",user);
      return "userDetail";
    }

    @RequestMapping("/url")
    public String urlDetail(Model model){
        model.addAttribute("id",1008611);
        model.addAttribute("name","瓦达");
        model.addAttribute("age",25);
        return "url";
    }
    @RequestMapping("/test")
    public @ResponseBody String test(String name){
        return "请求路径带参数"+name;
    }
    @RequestMapping("/test1")
    public @ResponseBody String test1(Integer id,String name,Integer age){
        return "请求路径带参数,参数id:"+id+" ,姓名:"+name+" ,年龄"+age;
    }
}

4.3 核心配置文件

#关闭Thymeleaf缓存
spring.thymeleaf.cache=false
 
#thymeleaf 模版前缀,默认值,可选项
spring.thymeleaf.prefix=classpath:/templates/
#thymeleaf 模版后缀,默认值,可选项
spring.thymeleaf.suffix=.html

4.4 前端展示数据页面以及结果截图

4.4.1 userDetail页面(选择和标准变量表达式)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>标准变量表达式:${}</h1>
    用户编号:<span th:text="${user.id}"></span> <br/>
    用户姓名:<span th:text="${user.name}"></span><br/>
    用户年龄:<span th:text="${user.age}"></span> <br/>

    <h1>选择变量表达式(星号表达式):*{}</h1>
<!--    *{}必须使用th:object属性来绑定这个对象  在div子标签中使用*来代替绑定的对象${user}-->
    <div th:object="${user}">
        用户编号:<span th:text="*{id}"></span> <br/>
        用户姓名:<span th:text="*{name}"></span><br/>
        用户年龄:<span th:text="*{age}"></span> <br/>
    </div><br/>

    <h1>标准变量表达式与选择变量表达式的混合使用</h1>
    用户编号:<span th:text="*{user.id}"></span> <br/>
    用户姓名:<span th:text="*{user.name}"></span><br/>
    用户年龄:<span th:text="*{user.age}"></span> <br/>


</body>
</html>

4.4.2? url页面(URL 表达式)

页面很多,就不一一展示了,拿点主要的展示

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>URL路径表达式</title>
</head>
<body>
    <h1>url路径表达式:@{.....}</h1>
    <h2>a标签中的绝对路径(没有参数)</h2> <br/>
    <a href="http://www.baidu.com">传统写法:跳转至百度</a> <br/>
    <a th:href="@{http://www.baidu.com}">路径:路径到百度</a> <br>
    <a th:href="@{http://localhost:8080/user/detail}">跳转至:/user/detail</a> <br>
    <a href="http://localhost:8080/user/detail">传统写法跳转至:/user/detail</a><br>

    <h2>URL路径表达式,相对路径[没有参数](实际开发中推荐使用的)</h2>
    <a th:href="@{/user/detail}">跳转至:/user/detail</a>

    <h2>绝对路径(带参数)</h2>
    <a href="http://localhost:8080/test?name=zhangsan">传统的绝对路径,带参数</a> <br/>
    <a th:href="@{http://localhost:8080/test?name='李四'}">路径表达式写法,带参数name</a> <br>

    <h2>相对路径(带参数)</h2>
    <a th:href="@{/test?name=李四}">相对路径,带参数</a>

    <h2>相对路径(带参数:后台获取的参数值)</h2>
    <a th:href="@{'/test?name='+${id}}">相对路径,获取后台参数值</a>

    <h2>相对路径(带多个参数:后台获取的参数值)</h2>
    <a th:href="@{'/test1?id='+${id}+'&name='+${name}+'&age='+${age}}">相对路径,获取后台多个参数值</a> <br/>
    <a th:href="@{/test1(id=${id},name=${name},age=${age})}">强烈推荐这个方式,相对路径,获取后台多个参数值</a> <br/>
    <a th:href="@{'/test2/'+${id}}">请求路径为RESTful风格</a><br/>
    <a th:href="@{'/test3/'+${id}+'/'+${name}}">请求路径为RESTful风格(多个参数)</a>
</body>
</html>

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:04:30  更:2021-10-06 12:04:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:07:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码