java自定义变量解析,Thymeleaf内置对象、定义变量、URL参数及标签自定义属性

如标题所述,这篇文章主要讲述Thymeleaf中的内置对象(list解析、日期格式化、数字格式化等)、定义变量、获取URL的参数和在页面标签中自定义属性的应用。

如果对Thymeleaf的基本使用、maven依赖等不清楚的可以先阅读我的另一篇文章《Thymeleaf 之 初步使用》。

Controller部份@Controller

public class IndexController {

@GetMapping(value = "index")

public String index(Model model, HttpServletRequest request) {

List datas = new ArrayList();

datas.add("Form1");

datas.add("http://www.form1.cn");

datas.add("393156105");

model.addAttribute("datas", datas);

model.addAttribute("curDate", new Date());

model.addAttribute("money", Math.random()*100);

return "index";

}

}

在这个控制器的Model中存放了这样几个数据:一个String类型的列表、一个日期对象和一个数值,这些东西在实际应用开发过程中应用非常广泛,下面具体看一下在Thymeleaf中是如何解析这些数据的。

日期格式化

说明: 使用内置对象dates的format函数即可对日期进行格式化,在format函数中,第一个参数是日期对象,对二两个参数为日期格式(规则跟SimpleDateFormat一样)

需要注意的是:· 内置对象一般都以s结尾,如dates、lists、numbers等

· 在使用内置对象是在对象名前都需要加#号。

数字格式化

说明: 此示例表示保留两位小数位,整数位自动;

说明: 此示例表示保留两位小数位,3位整数位(不够的前加0)

获取列表长度

说明: 使用#lists.size来获取List的长度。

获取URL参数值

说明: 当访问http://localhost:1105/index?page=5时页面将会得到page对应的值:5。

定义变量

当前页码:

说明: 同样,当访问http://localhost:8888/index?page=5时,页面将显示:当前页码:5,说明用th:with来定义变量,多个用,号隔开,使用范围在当前标签内。

自定义标签属性

在Thymeleaf中可以使用th:加上标签的任何属性进行赋值,但有些时候会遇到自定义的属性,再用th:加自定义的属性则会无效。比如:需要对标签增加objName和objId这样的属性,在非Thymeleaf情况下是这样:

变量情况是:

在Thymeleaf下则是:

说明: 在页面上查看源代码可以看到:,说明自定义属性用:th:attr,多个属性用,隔开。

thymeleaf对于checked属性的判断对于属性是有些特定值的,比如checked属性,thymeleaf都采用bool值,比如th:checked=${user.isActive}

这里,user.isActive=false时应该checked是不会出现这个attr的。

总的来说thymeleaf是不错的,但内联不是太好用,经常js的alert的时候,不得不把后半个括号换一行,如alert("aaa" + /*[[#{message}]]*/'message');

这种情况,会把后面的);都删掉所以只能写成

alert("aaa" + /*[[#{message}]]*/'message'

);

内置对象

上面简单描述了比较常用的dates、lists、numbers这几个内置对象,在Thymeleaf还有很多的内置对象,像strings也非常常用,用法跟Java.lang.String类的用法一样。

在Thymeleaf中的内置对象有:

#dates:日期格式化内置对象,具体方法可以参照java.util.Date;

#calendars:类似于#dates,但是是java.util.Calendar类的方法;

#numbers: 数字格式化;

#strings:字符串格式化,具体方法可以参照java.lang.String,如startsWith、contains等;

#objects:参照java.lang.Object;

#bools:判断boolean类型的工具;

#arrays:数组操作的工具;

#lists:列表操作的工具,参照java.util.List;

#sets:Set操作工具,参照java.util.Set;

#maps:Map操作工具,参照java.util.Map;

#aggregates:操作数组或集合的工具;

#messages:操作消息的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux php curl.so,linux中php如何安装CURL扩展方法

如果php已经在系统编译好,后来又需要添加新的扩展。一种方式就是重新完全编译php,另一种方式就是单独编译扩展库,以extension的形式扩展。下面以安装curl扩展为例:1、下载curl安装包。(我的php是4.4.4的,下载最新的cur…

matlab线性拉伸函数,采用线性变换对图像的每一个像素灰度作线性拉伸-Read.PPT

采用线性变换对图像的每一个像素灰度作线性拉伸-Read第4章 图像增强(1) 4.1 图像增强概述 图像增强(image enhancement)的定义: 在图像的获取过程中,由于多种因素的影响,导致图像质量退化。图像增强是对退化图像的某些特征,如边缘…

php js 循环对象属性,js 遍历对象的属性的代码_javascript技巧

如:Function.prototype.addMethodfunction(methodName,func){if(!this.prototype[methodName]){this.prototype[methodName]func;//给原型增加方法,此方法会影响到该类型的实例上}return this.prototype;//返回原型,此类型实例可以进行链形调…

php连接数据库navicat,navicat数据库如何连接php

第一步,打开Navicat,新建数据库。第二步,在数据库中新建表。相关推荐:《Navicat for mysql使用图文教程》第三步,保存表。第四步,表中添加数据。第五步,打开ide,输入以下php代码&…

每日一题:LCR 095.最长公共子序列(DP)

题目描述: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些…

php自动合并,php实现合并数组并去除重复的方法

php实现合并数组并去除重复的方法发布时间:2020-08-12 10:35:05来源:亿速云阅读:99作者:小新这篇文章主要介绍了php实现合并数组并去除重复的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这…

oracle存储数据方式,Oracle 数据类型及存储方式

Oracle 数据类型及存储方式袁光东 原创概述通过实例,全面而深入的分析oralce的基本数据类型及它们的存储方式。以ORACLE 10G为基础,介绍oralce 10g引入的新的数据类型。让你对oracle数据类型有一个全新的认识。揭示一些不为人知的秘密和被忽略的盲点。从…

oracle的一些基本操作,Oracle中的一些基本操作

关于Oracle中的一些基本操作,包括表空间操作,用户操作,表操作1 --创建表空间2 create tablespace itheima3 datafile I:\oracle\table\itheima.dbf4 size 100m5 autoextend on6 next 10m;7 --删除表空间8 drop tablespace itheima;910 --创建…

oracle全局批准供应商,Oracle EBS-SQL (PO-7):检查异常-非批准的供应商设置供货比例.sql...

select distinctmsr.sourcing_rule_name 名称,msi.description 说明,msi.item_type 类型,msi.inventory_item_status_code 状态,msr.planning_active 计划生效,msro.effective_date 有…

linux 临时文件 锁,linux – 无法使用文件描述符flock锁定文件

您正在使用-n,如果无法立即获取锁定将终止,并且flock将以退出代码1失败.因此,在第一个终端中执行代码后,它会休眠100秒.接下来当你在另一个终端中执行相同的操作时,flock会失败并返回1,但是因为有一个;并且您不对返回代码执行任何操作,shell只是继续执行下一个语句并休眠100秒.…

linux内核运行关系图,一张图看懂Linux内核运行交互关系

很多朋友如果接触过Linux的都知道Kernel的含义,kernel是操作系统的核心或者最重要的部分。众所周知的是,几乎整个互联网都运行在 Linux上,从网络协议,到服务器,到你平常访问的绝大多数网站,都能看到它的身…

win7下访问linux文件权限,linux中文件的权限

一、文件的基本权限权限:r, w, x对于文件来讲,r::可读,可以使用类似cat等命令查看文件内容;w:可写,可以编辑或删除此文件;x:可执行,exacutable,可以命令提示符下当作命令…

linux头文件怎么编译,microsoft编译器怎么使用Linux头文件

microsoft编译器如何使用Linux头文件?#include #include #include #include #include #include #include #include #include #include #include #include #include 分享到:------解决方案--------------------windows 对应 上面头文件 是哪个呀?引用:一般都是网络…

linux程序多少位,查看linux版本是多少位

1 查看内核版本:1)[rootLinux download]# cat /proc/versionLinux version 2.6.18-194.el5 (mockbuildbuilder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:35 EDT 20102)[rootLinux download]# uname -aLinux Linux 2.…

linux内核bios,BIOS的启动原理——Linux内核设计学习笔记

RAM:随机存取存储器,常见的内存条就是一类RAM,其特点是加电状态下可任意读、写,断电后信息消失。在RAM中什么程序也没有的时候,谁来完成加载软盘中操作系统的任务呢?答案是:BIOS。BIOS的启动原理…

zabbix监控linux网卡流量,zabbix实现linux流量变化率监控

监控软件:zabbix需求分析:从系统层面的监控看,现在CPU持续超过80%会报警,流量曲线达到阀值才会报警,但是流量在短时间内起伏很大,肯定是有问题的,目前主要还是依靠人看,肯定有滞后性…

Linux下仿windows任务管理器,开源任务管理器 Process Hacker (Windows)

Windows表面上没有工作在进行中,但不知为何负荷很重,究竟有什么进程在执行?会不会是系统已经被入侵?这是很多人都想知道的问题。但Windows自带的任务管理员实在太过简陋,解决办法便是安装这次介绍的Process Hacker。熟…

linux软件工程师笔试题,C/C++软件工程师笔试题

1,程序设计(可以用自然语言来描述,不编程):C/C源代码中,检查花括弧(是“(”与“)”,“{”与“}”)是否匹配,若不匹配,则输出不匹配花括弧所在的行与列。2,巧排数字,将1,2…

嵌入式linux中的锁机制,跟涛哥一起学嵌入式第11集:一个实现锁机制非常有意思的宏...

QQ群(宅学部落)有位学员问了一个很奇怪的宏,觉得很有意思,特拿来分享,它的定义如下:我们知道,宏定义其实就是为了方便,给一串代码字符串定义一个别名。有时候字符串过于复杂,我们可以分多行书写&#xff0c…

linux 制作box文件夹,用busybox制作自己简易的根文件系统

当使用Busybox-1.2.0制作根文件系统交叉编译器为3.3.2make-3.8.1STEP 1:创建根文件系统目录,主要包括以下目录/bin,/etc,/dev,/mnt,/sbin,/usr。STEP 2:升级make到3.81版本&#xff…