Thymeleaf表达式

2023-11-18

1、标准变量表达式:th:text="${...}"

需要在属性里面填写

例如:

用户编号:<span th:text="${user.id}"></span><br/>
用户姓名:<span th:text="${user.username}"></span><br/>
用户年龄:<span th:text="${user.age}"></span><br/>

2、选择变量表达式:(星号表达式):*{}(不推荐)

*{}必须使用th:object属性进行绑定对象th:object="${user}",内容必须在绑定对象的标签内部去写。

在子标签中使用 * 来代替绑定对象${user}

例如:

<div th:object="${user}">
    用户编号:<span th:text="*{id}"></span><br/>
    用户姓名:<span th:text="*{username}"></span><br/>
    用户年龄:<span th:text="*{age}"></span><br/>
</div>

3、标准变量表达式与选择变量表达式的混合使用(不推荐)

例如:

用户编号:<span th:text="${user.id}"></span><br/>
用户姓名:<span th:text="${user.username}"></span><br/>
用户年龄:<span th:text="${user.age}"></span><br/>

4、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>
<a href="http://www.baidu.com">传统写法</a><br/>
<a th:href="@{http://www.baidu.com}">跳转到百度</a><br/>
<a href="http://localhost:8080/user/detail">传统跳转到userDetail</a><br/>
<a th:href="@{http://localhost:8080/user/detail}">跳转至userDetail</a><br/>

<h2>url表达式相对路径(无参数)(实际开发中推荐使用,没有固定的ip和端口号)</h2><br/>
<a th:href="@{/user/detail}">跳转至userDetail</a><br/>

<h2>绝对路径(带参数)(不推荐)</h2><br/>
<a href="http://localhost:8080/test?username='zhangsan'">张三</a><br/>
<a th:href="@{http://localhost:8080/test?username=lisi}">李四</a><br/>

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

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

<h2>相对路径带多参(多参,后台获取)</h2><br/>
<a th:href="@{'/test1?id='+${id}+'&username='+${username}+'&age='+${age}}">多参</a><br/>
<a th:href="@{/test1(id=${id},username=${username},age=${age})}">不拼接</a><br/>

<h2>RESTful风格</h2><br/>
<a th:href="@{'/test2/'+${id}}">请求路径为RESTful方式请求id</a><br/>
<a th:href="@{'/test3/'+${id}+'/'+${username}+'/'+${age}}">请求路径为RESTful方式请求id,username,age</a>
</body>
</html>
package com.bjpowernode.springboot.web;


import com.bjpowernode.springboot.model.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;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class UserController {

    @RequestMapping(value = "/user/detail")
    public ModelAndView userDetail(){
        ModelAndView mv = new ModelAndView();
        User user = new User();
        user.setId(1001);
        user.setUsername("lio");
        user.setAge(22);

        mv.setViewName("userDetail");
        mv.addObject("user",user);

        return mv;
    }

    @RequestMapping(value = "/url")
    public String url(Model model){
        model.addAttribute("id",1001);
        model.addAttribute("username","zhaoliu");
        model.addAttribute("age",21);
        return "url";
    }

    @RequestMapping(value = "/test")
    public @ResponseBody String test(String username){
        return "请求路径/test,带参数为"+username;
    }
    @RequestMapping(value = "/test1")
    public @ResponseBody String test1(Integer id,String username,Integer age){
        return "请求路径/test1,编号为"+id+",姓名为"+username+",年龄为"+age;
    }
    @RequestMapping(value = "/test2/{id}")
    public @ResponseBody String test2(@PathVariable("id") Integer id){
        return "id=,编号为"+id;
    }
    @RequestMapping(value = "/test3/{id}/{username}/{age}")
    public @ResponseBody String test3(@PathVariable("id") Integer id,
                                      @PathVariable("username") String username,
                                      @PathVariable("age") Integer age){
        return "id,编号为"+id+",姓名为"+username+",年龄为"+age;
    }
}

js、img同

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Thymeleaf表达式 的相关文章

  • 数据结构选择题

    1 数据元素及其关系在计算机存储器内的表示 称为数据的 B A 逻辑结构 B 存储结构 C 线性结构 D 非线性结构 2 某带头结点的单链表的头指针为 head 判定该链表为非空的条件是 B A headNULL B head gt nex
  • eclipse安装tomcat插件

    现在我只想说 我x你ma tmd 老子费了一下午 才他妈知道是怎么回事儿 原来是需要往eclipse了安装一个tomcat插件 害得我迷迷糊糊的搞了一下午 下班了都才搞明白 1 先下载一个tomcat插件 地址 http www eclip
  • 快速换线流程图_生产线快速切换的七大技巧

    SMED Single Minute Exchange of Die 一分钟即时换模 通常叫快速换模 也叫快速换产 是一种快速和有效的作业切换方法 这一概念指出 所有的转变或者启动都能够并且应该少于10分钟 因此才有了单分钟这一说法 所以又

随机推荐

  • python关键知识点

    1 变量 在程序中存储值或对象的名称 2 数据类型 指变量的数据类型 例如 str int float list tuple dict set 等 3 操作符 表示运算符号 例如加号 和减号 4 循环 通过重复执行某个代码块来实现多次操作的
  • 学习React与Next.js过程中的疑惑

    学习React与Next js过程中的疑惑 1 为什么React中函数作为props的时候 会出现无限调用的情况 而把函数放在箭头函数中就可以解决呢 2 next js与node js有什么区别 3 什么是快速刷新 4 Hooks出现的原因
  • IVTC/Deinterlace的来龙去脉

    IVTC Deinterlace的来龙去脉 1 胶片电影 曝光率为24帧 秒的progressive video 连续完整帧图像序列 它由无数个感光晶体 35mm可达5000 5000 实现图像曝光 而人眼在35mm的区域内能分辨的最大极限
  • 三句话,我让R语言自动升级了

    R语言是为数学研究工作者设计的一种数学编程语言 主要用于统计分析 绘图 数据挖掘 跟所有计算机语言一样 R语言也面临升级的问题 本文讲述了最快捷的升级R语言办法 不用重新安装之前的安装包 首先 进入R交互模式 然后三条命令搞定 instal
  • 抖音小程序开发教学系列(5)- 抖音小程序数据交互

    第五章 抖音小程序数据交互 5 1 抖音小程序的网络请求 5 1 1 抖音小程序的网络请求方式和API介绍 5 1 2 抖音小程序的数据请求示例和错误处理方法 5 2 抖音小程序的数据缓存和本地存储 5 2 1 抖音小程序的数据缓存机制和使
  • 交流电机绕组的分相

    交流电机绕组的分相 考虑到目前大多数伺服电机厂商已经逐渐使用集中式绕组进行制造 本文将以集中式绕组12槽10极电机为例简要介绍交流电机绕组的分相方法 即60 相带槽电势星形图方法1 槽电势星形图 当电机被带动旋转时 对于集中式绕组而言 每一
  • 穿越火线河北一区服务器位置,【 C F 史上最全的各大区“兵服”地址!】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 电 信 区 四川二区 团队1 频道2 浙江二区 团队2 频道2 江西一区 团队1 频道2 高手1 频道10 广西一区 高手1 频道7 爆满 上海一区 爆破1 频道8 9 10 11 爆满 南方大
  • [LeetCode]大于给定和最短子数组

    对于数组的操作 在算法实现中 可以考虑三种思想 阵地攻守 例题https blog csdn net fmuma article details 79858876 指针碰撞 例题https blog csdn net fmuma artic
  • AD 常见绿色报错的消除

    TM 可以复位绿色错误 在这个里面 关闭所有报错 只打开电器里面的所有报错 23 PCB板框的评估及叠层设置 对PCB板框进行评估 1 全选器件 2 如果设置了快捷键但是没有起作用 右键单击上方菜单栏 如上图所示 然后找到更改的快捷键 删除
  • UE4 关于使用Webbrowser插件遇到的问题以及解决办法

    1 无法播放网页视频 这是因为UE4的WebBrowser自带的cef3为3071版本 默认不支持h364等直播流 导致web里的直播流无法播放 解决办法 第一种办法 重新编译了cef源码 改成支持H 264 然后在UE4安装目录下替换相关
  • 目标检测入坑指南3:VGGNet神经网络

    学了蛮久的目标检测了 但是有好多细节总是忘或者模棱两可 感觉有必要写博客记录一下学习笔记和一些心得 既可以加深印象又可以方便他人 博客内容集成自各大学习资源 所以图片也就不加水印了 需要自取 本专栏会详细记录本人在研究目标检测过程中的所学所
  • Flutter android及ios强制竖屏/横屏

    Flutter android及ios强制竖屏 横屏 在main dart内设置即可 在main dart内设置即可 void main WidgetsFlutterBinding ensureInitialized 不加这个强制横 竖屏会
  • Java:jdk-12.0.2安装教程(很全的哦)

    Java是一门综合性的编程语言 从最初设计时就综合考虑了嵌入式系统以及企业平台的开发支持 所以在实际的Java开发过程中 其主要有3种开发方向 分别为Java SE 其最早被称为J2SE Java EE 其最早被称为J2EE Java ME
  • Web移动端-touch事件

    一 引入 在一个项目demo中 实现单指触控卡片的向任意方向的拖动效果 网上没有现成的插件 所以只好原生js来写 产品要求需要禁止掉多点触控 这个过程很让人头疼 试了很多方法 都不太实现 后来仔细研究 测试了一下移动端的三个常用事件 二 事
  • Web前端——Javascript复习(数组)

    1 数组 1 程序 数据结构 算法 一个好的数据结构 可极大提高程序的执行效率 相关的多个数据应集中存储 管理 分类和排序 2 数组概念 一组连续的变量组成的集合 批量管理多个数据 创建 2 1 var 变量名 2 2 var 变量名 值1
  • 【Github相关】在GitHub上 git clone代码失败,显示:“ithub.com port 443: 连接超时“

    有时候 使用git clone 指令下载代码时显示显示 ithub com port 443 连接超时 可以使用gitclone加速 官网URL https gitclone com 官方描述 有下面三种方式可以使用 方法一 替换URL g
  • c语言 栈头文件,C语言——栈(Stack)

    源码 方式一 头文件 ifndef STACK H define STACK H struct node typedef struct node stack 判断栈是否为空 int isEmpty stack s create stack
  • linux修改静态ip方法&&如何使用xshell连接

    ifconfig查看本地ip和网卡信息 cd到目录 etc sysconfig network scripts 想修改那块网卡就vi他 例如修改eth0 这样eth0的网卡就修改完毕 退出vi进行网络重启 service network r
  • LVGL 控件之(Arc)弧图形绘制

    一 弧形组成 弧图形由背景弧和前景弧组成 它们有各自的起始角度和结束角度 二 控件函数使用 设置背景弧度的函数 lv arc set bg angles arc start angle end angle 或者用 lv arc set bg
  • Thymeleaf表达式

    1 标准变量表达式 th text 需要在属性里面填写 例如 用户编号 span span br 用户姓名 span span br 用户年龄 span span br 2 选择变量表达式 星号表达式 不推荐 必须使用th object属性