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对象的使用:数字对象的更多相关文章

  1. Thymeleaf对象的使用:日期对象

    Thymeleaf在模板中使用 #dates 或 #calendars 两个对象来处理日期,这两个对象大部分类似. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2 ...

  2. Thymeleaf对象的使用:字符串对象

    Thymeleaf主要使用 org.thymeleaf.expression.Strings 类处理字符串,在模板中使用 #strings 对象来处理字符串. 开发环境:IntelliJ IDEA 2 ...

  3. Thymeleaf对象的使用:基本对象

    Thymeleaf中有许多内置对象,可以在模板中实现各种功能.下面有几个基本对象.Web对象常用有:request.session.servletContext.Thymeleaf提供了几个内置变量p ...

  4. thymeleaf学习

    一.简单表达格式:   thymeleaf的官方参考文档 1.变量的表达式:${...} 2.选择变量表达式:*{...} 3.信息表达:#{...} 4.链接URL表达式:@{...} 二.字面值 ...

  5. thymeleaf 基础

    (一)Thymeleaf 是个什么?      简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下 ...

  6. thymeleaf(一)

    (一)Thymeleaf 是个什么?      简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下 ...

  7. Thymeleaf 学习笔记

    (一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下三个极吸引 ...

  8. 第6章—渲染web视图—SpringMVC+Thymeleaf 处理表单提交

    SpringMVC+Thymeleaf 处理表单提交 thymleaf处理表单提交的方式和jsp有些类似,也有点不同之处,这里操作一个小Demo,并说明: 1.demo的结构图如下所示: pom.xm ...

  9. thymeleaf 学习笔记-基础篇(中文教程)

    (一)Thymeleaf 是个什么?      简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下 ...

随机推荐

  1. Linux文本处理三剑客之sed

    推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...

  2. asp.net core web应用以服务的方式安装运行

    目录 一.方案:使用Microsoft.Extensions.Hosting.WindowsServices实现: 一.方案:使用Microsoft.Extensions.Hosting.Window ...

  3. 爬取b站互动视频信息

    首先分辨视频是不是互动视频可以看 https://api.bilibili.com/x/player.so?id=cid:1&aid=89017 这个api返回的xml中的 <inter ...

  4. 我用 Python 破解了同事的加密压缩包!

    ​ 作者 | 朱小五 又是一杯奶茶. 事情的经过是这样的: ​ ​ 又是奶茶,行吧快点开工,争取李大伟回来之前搞定 李大伟说是6位数字密码 那么我们可以利用python生成全部的六位数字密码 #生成从 ...

  5. 本地的个人web网站上线的全过程,供大家参考(PHP,简易的LAMP环境搭建)

    一 : 你需要准备的东西 1.本地能访问的网站,最好是改过host文件和apache的httpd-vhosts.conf,配置过本地域名的那种(减少传到线上出现的问题,文件路径不对呀啥的) 2.一个云 ...

  6. 美团点评Kubernetes集群管理实践

    背景 作为国内领先的生活服务平台,美团点评很多业务都具有非常显著.规律的”高峰“和”低谷“特征.尤其遇到节假日或促销活动,流量还会在短时间内出现爆发式的增长.这对集群中心的资源弹性和可用性有非常高的要 ...

  7. DevExpress Skins<2>

    Skins DevExpress WinForms控件包括许多现成的绘画主题(或外观),用于更改DevExpress表单和控件的外观.您可以通过运行WinForms演示应用程序并使用外观选择器在可用主 ...

  8. Burp Suite渗透操作指南 【暴力破解】

    1.1 Intruder高效暴力破解 其实更喜欢称Intruder爆破为Fuzzing.Intruder支持多种爆破模式.分别是:单一字典爆破.多字段相同字典爆破.多字典意义对应爆破.聚合式爆破.最常 ...

  9. [20191125]oracel SQL parsing function qcplgte 2.txt

    [20191125]oracel SQL parsing function qcplgte 2.txt --//参考前面的测试:http://blog.itpub.net/267265/viewspa ...

  10. maven多仓库配置 公司仓库和阿里仓库

    针对公司内网私服仓库,私服仓库不能访问外网,此时无法在私服仓库代理阿里的maven仓库.我们的maven就需要配置多个仓库: maven目录下的conf/settings.xml配置文件: 一.在pr ...