如标题所述,这篇文章主要讲述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:操作消息的工具。

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

  1. JAVA Web入门之JSP内置对象的解析及使用(超详细必看)

    创作不易 觉得有帮助请点赞关注收藏~~ 概述:由于JSP使用java作为脚本语言 所以JSP具有强大的对象处理能力 并且可以动态创建web页面内容 但java语言在使用一个对象前  需要先实例化这个对 ...

  2. 关于JSP(Java Server Pages)的内置对象有哪些?

    1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 2.response对象 respo ...

  3. Thymeleaf 内置对象和内置方法

    #dates /* * 使用标准区域设置格式格式化日期 * 也同样适用于数组.列表或集合 */ ${#dates.format(date)} ${#dates.arrayFormat(datesArr ...

  4. Selenium Webdriver 的使用java执行js代码 解决 ScriptEngine不支持浏览器内置对象window,document的问题

    问题场景: 使用java 掉用js代码,发现 ScriptEngine不支持浏览器内置对象window,document的问题: 问题一:为什么要 用java掉用js代码? 比如在 抓取(爬取)对方网 ...

  5. page和其它几个内置对象(转)

    1.PAGE对象的属性 IsValid属性:用来判断网页上的验证控件是否全部验证成功. Request属性:获取请求网页的Request对象. Response属性:获取与请求网页相关的Respons ...

  6. JSP内置对象:request、response、out、session、application等内置对象

    Java程序的功能主要是由Java包下的各个类在运行期所产生的对象所提供,并且应用这些对象组织构建程序所需的功能. 所谓JSP内置对象,是指在JSP网页环境之下,用户不需要声明而直接可以在JSP网页中 ...

  7. EL表达式,JSP内置对象

    基本语法格式 EL都是以 ${ 为起始.以} 为结尾的 ${ EL Expression} 示例: ${ "Helloworld" }  //输出字符串常量 ${ str }  / ...

  8. JSP常用内置对象概述

    1.概述 JSP提供了9个预设的对象,我们将其称为内置对象.这些对象内置在JSP网页环境之下,因此用户不需要引用这些对象所属的包,便可以直接在JSP网页中使用这些对象. 如图: (1 ) reques ...

  9. 对象、内置对象、数组对象、字符串对象的使用

    概念:无序的相关属性和方法的集合 组成:属性.方法 属性:特征 方法:行为 创建对象三种方式: 1.利用对象字面量创建对象{} var obj={};//创建一个空对象 var obj ={ unam ...

最新文章

  1. 想要彻底搞懂“异地多活”,看完这篇就够了
  2. Windows核心编程 第十七章 -内存映射文件(上)
  3. wxWidgets:wxCollapsiblePane类用法
  4. android tag的使用方法,Android:如何使用Html.TagHandler?
  5. 闲来无事刷水题、简单博弈论专题、sg函数、洛谷
  6. IDEA中如何给含有main方法的普通类设置JVM参数
  7. Linux学习笔记 --网络配置及进程管理
  8. 自学python入门训练营 李笑来_如何看待李笑来发布的Python教程《自学是门手艺》?...
  9. linux的vi命令详解,linux vi命令详解
  10. 新型基础测绘与实景三维中国建设技术文件【2】基础地理实体分类、粒度及精度基本要求
  11. 游戏是怎么赚钱的?(科普篇 )
  12. 群联固态硬盘修复工具_固态硬盘有三大要素,那么你的固态硬盘买对了吗?
  13. 进化树构建的方法原理及检验
  14. 一文带你入坑全链路监控,skywalking
  15. element组件官网
  16. MySQL基础命令-学习的时候记录一下
  17. 操作系统之死锁检测算法:银行家算法
  18. 移动操作系统元心可能基于MeeGo系统开发
  19. UE4人物移动时的摄像机抖动
  20. Python 绿盟远程安全评估系统(RSAS)漏洞跟踪表导出工具

热门文章

  1. 刚刚!6月榜单:JS跌惨,Python又霸榜,C++再无翻身可能!
  2. 8 年后重登王座,Python 再度成为 TIOBE 年度编程语言
  3. php mysql 失败_在php中插入失败的数据mysql
  4. 开发经验分享_03_解决问题3步走(思路)
  5. 02_Spring Cloud Alibaba整合通用Mapper+Lombok+Mysql
  6. idea报错Module Project1 must not contain source root ...\Project1\src. The root already belongs to .
  7. puppet php,puppet入门实践
  8. python矩阵计算_PYTHON 矩阵运算
  9. git拉取项目以及提交项目
  10. html添加子节点方法,HTML DOM appendChild() 方法