Thymeleaf对象的使用:数字对象
Thymeleaf主要使用 org.thymeleaf.expression.Numbers 类处理数字,在模板中使用 #numbers 对象来处理数字。
开发环境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
新建一个名称为demo的Spring Boot项目。
pom.xml加入Thymeleaf依赖:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-thymeleaf</artifactId>
- </dependency>
一、整数格式化
有4个方法:
(1)formatInteger(number,digits)
第一个参数为单个数字,如果有小数字点则四舍五入,第二个参数设置最少的整数位数,不足会补0(下同)
(2)arrayFormatInteger(numbers,digits)
传入数组,返回处理后的数组
(3)listFormatInteger(numbers,digits)
传入List,返回处理后的List
(4)setFormatInteger(numbers,digits)
传入Set,返回处理后的Set
这4个方法存在重载方法传入第三个参数,用于标识千位分隔符
POINT : 使用“.”
COMMA : 使用“,”
WHITESPACE : 使用“ ”(空格)
NONE : 不使用分隔符
DEFAULT : 根据Locale对象来决定
1、src/main/resources/templates/integer.html
- formatInteger(number,digits)
- <div th:text="${#numbers.formatInteger(10,0)}"></div>
- <div th:text="${#numbers.formatInteger(10.6,2)}"></div>
- <div th:text="${#numbers.formatInteger(10.6,5)}"></div>
- <div th:text="${#numbers.formatInteger(10.50,0)}"></div>
- <div th:text="${#numbers.formatInteger(10.51,2)}"></div>
- <div th:text="${#numbers.formatInteger(10000000,0,'COMMA')}"></div>
- <div th:text="${#numbers.formatInteger(10000000,0,'POINT')}"></div>
- arrayFormatInteger(numbers,digits)
- <div th:each="num : ${#numbers.arrayFormatInteger(arr,0)}">
- <div th:text="${num}"></div>
- </div>
- listFormatInteger(numbers,digits)
- <div th:each="num : ${#numbers.listFormatInteger(list,2)}">
- <div th:text="${num}"></div>
- </div>
- setFormatInteger(numbers,digits)
- <div th:each="num : ${#numbers.setFormatInteger(set,4)}">
- <div th:text="${num}"></div>
- </div>
2、src/main/java/com/example/demo/IntegerController.java
- package com.example.demo;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- import java.util.Arrays;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- @Controller
- public class IntegerController {
- @RequestMapping("/integer")
- public String integer(Model model){
- Double[] arr = new Double[]{10D, 10.9};
- List list = Arrays.asList(arr);
- Set set = new HashSet(list);
- model.addAttribute("arr", arr);
- model.addAttribute("list", list);
- model.addAttribute("set", set);
- return "integer";
- }
- }
浏览器访问:http://localhost:8080/integer
页面输出:
- formatInteger(number,digits)
- 10
- 11
- 00011
- 10
- 11
- 10,000,000
- 10.000.000
- arrayFormatInteger(numbers,digits)
- 10
- 11
- listFormatInteger(numbers,digits)
- 10
- 11
- setFormatInteger(numbers,digits)
- 0010
- 0011
二、小数格式化
同样有4个方法:
(1)formatDecimal(number,intDig,decDig)
第一个参数为单个数字,第二个参数设置最少的整数位数(不足会补0),第三个参数设置保留小数位数
(2)arrayFormatDecimal(numArray,intDig,decDig)
传入数组,返回处理后的数组
(3)listFormatDecimal(numList,intDig,decDig)
传入List,返回处理后的List
(4)setFormatDecimal(numSet,intDig,decDig)
传入Set,返回处理后的Set
这4个方法都存在两个重载方法,以formatDecimal为例:
(a)formatDecimal(number,intDig,decDig,decPoint)
decPoint表示用什么符号作为小数点,取值为POINT、COMMA、WHITESPACE、NONE和DEFAULT。
(b)formatDecimal(number,intDig,separator,decDig,decPoint)
separator表示用什么符号作为千位分隔符,同样取值为POINT、COMMA、WHITESPACE、NONE和DEFAULT。
1、src/main/resources/templates/decimal.html
- <div th:text="${#numbers.formatDecimal(10, 0, 0)}"></div>
- <div th:text="${#numbers.formatDecimal(10.6, 0, 2)}"></div>
- <div th:text="${#numbers.formatDecimal(10.6, 5, 2)}"></div>
- <div th:text="${#numbers.formatDecimal(10000000, 0, 2, 'COMMA')}"></div>
- <div th:text="${#numbers.formatDecimal(10000000, 2, 2, 'POINT')}"></div>
- <div th:text="${#numbers.formatDecimal(10000000, 2, 'POINT', 2, 'POINT')}"></div>
2、src/main/java/com/example/demo/DecimalController.java
- package com.example.demo;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller
- public class DecimalController {
- @RequestMapping("/decimal")
- public String decimal(){
- return "decimal";
- }
- }
浏览器访问:http://localhost:8080/decimal
页面输出:
- 10
- 10.60
- 00010.60
- 10000000,00
- 10000000.00
- 10.000.000.00
三、百分比格式化
和小数的格式化类似,同样有4个方法,其中处理单个数字用
formatPercent(number,intDig,decDig)
第一个参数为单个数字,第二个参数设置最少的整数位数(不足会补0),第三个参数设置保留小数位数
1、src/main/resources/templates/percent.html
- <div th:text="${#numbers.formatPercent(0.123, 0, 2)}"></div>
- <div th:text="${#numbers.formatPercent(0.123, 5, 2)}"></div>
2、src/main/java/com/example/demo/PercentController.java
- package com.example.demo;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller
- public class PercentController {
- @RequestMapping("/percent")
- public String percent(){
- return "percent";
- }
- }
浏览器访问:http://localhost:8080/percent
页面输出:
- 12.30%
- 00,012.30%
四、sequence方法
sequence方法返回Integer数组。
(1)sequence(from,to)
设置开始值与结束值,如果from比to大,则默认步长为1,否则为-1。
(2)sequence(from,to,step)
设置开始值与结束值,步长。
1、src/main/resources/templates/sequence.html
- <div th:each="num : ${#numbers.sequence(0,3)}">
- <div th:text="${num}"></div>
- </div>
- ----------
- <div th:each="num : ${#numbers.sequence(5,1)}">
- <div th:text="${num}"></div>
- </div>
2、src/main/java/com/example/demo/SequenceController.java
- package com.example.demo;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller
- public class SequenceController {
- @RequestMapping("/sequence")
- public String sequence(){
- return "sequence";
- }
- }
浏览器访问:http://localhost:8080/percent
页面输出:
- 0
- 1
- 2
- 3
- ----------
- 5
- 4
- 3
- 2
- 1
Thymeleaf对象的使用:数字对象的更多相关文章
- Thymeleaf对象的使用:日期对象
Thymeleaf在模板中使用 #dates 或 #calendars 两个对象来处理日期,这两个对象大部分类似. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2 ...
- Thymeleaf对象的使用:字符串对象
Thymeleaf主要使用 org.thymeleaf.expression.Strings 类处理字符串,在模板中使用 #strings 对象来处理字符串. 开发环境:IntelliJ IDEA 2 ...
- Thymeleaf对象的使用:基本对象
Thymeleaf中有许多内置对象,可以在模板中实现各种功能.下面有几个基本对象.Web对象常用有:request.session.servletContext.Thymeleaf提供了几个内置变量p ...
- thymeleaf学习
一.简单表达格式: thymeleaf的官方参考文档 1.变量的表达式:${...} 2.选择变量表达式:*{...} 3.信息表达:#{...} 4.链接URL表达式:@{...} 二.字面值 ...
- thymeleaf 基础
(一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下 ...
- thymeleaf(一)
(一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下 ...
- Thymeleaf 学习笔记
(一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下三个极吸引 ...
- 第6章—渲染web视图—SpringMVC+Thymeleaf 处理表单提交
SpringMVC+Thymeleaf 处理表单提交 thymleaf处理表单提交的方式和jsp有些类似,也有点不同之处,这里操作一个小Demo,并说明: 1.demo的结构图如下所示: pom.xm ...
- thymeleaf 学习笔记-基础篇(中文教程)
(一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下 ...
随机推荐
- Linux 使用grep过滤多个条件及grep常用过滤命令
这篇文章主要介绍了Linux 使用grep筛选多个条件及grep常用过滤命令,需要的朋友可以参考下 cat log.txt | grep 条件: cat log.txt | grep 条件一 | gr ...
- Graylog 环境搭建与使用
graylog 官网地址: www.graylog.org graylog 简易架构图: graylog 生产架构图: graylog 有两个版本,1.企业版:2.开源版 下面使用开源版本搭建日志中心 ...
- linux服务器JDK1.8环境变量配置
1. 场景描述 软件老王年龄大了,新机器(Linxu)下,配置JDK环境变量老记不住,记录下,有需要的朋友参考下. 2. 解决方案 2.1 上传tar包 ftp上传tar包: jdk-8u181-li ...
- 详解串行通信协议及其FPGA实现
前言 好久没更新博客了,这篇文章写写停停,用了近一周的时间,终于写完了.本篇文章介绍,串口协议数据帧格式.串行通信的工作方式.电平标准.编码方式及Verilog实现串口发送一个字节数据和接收一个字节数 ...
- 一泡尿的时间,快速读懂QUIC协议
1.TCP协议到底怎么了? 现时的互联网应用中,Web平台(准确地说是基于HTTP及其延伸协议的客户端/服务器应用)的数据传输都基于 TCP 协议. 但TCP 协议在创建连接之前需要进行三次握手(如下 ...
- MySql报错(持续更新)
目录 MySql报错 1. 重复键报错1062- duplicate entry '0' for key 'xxx' 1.1 报错场景 1.2 报错原因 1.3 解决方法 1.4 具体举例 2. VS ...
- Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- Angular--AOT和JIT两种编译方式带来的改变
Angular 应用主要由组件及其 HTML 模板组成.由于浏览器无法直接理解 Angular 所提供的组件和模板,因此 Angular 应用程序需要先进行编译才能在浏览器中运行.Angular 提供 ...
- C# Excel 读取导入数据库
使用Aspose.Cells组件. 表格第一行为表头合并,第二行为数据名称,从第三行开始数据. if (xtraOpenFileDialog1.ShowDialog() == DialogResult ...
- MQ脚本回放报错2059
1.响应2059错误 1.1. 涉及协议 MQ,调试回放阶段 1.2. 错误信息 完成码2原因为2059:未能为 '10.200.100.75:QMEMBFE' 创建 MQQueueManag ...