当前位置: 移动技术网 > IT编程>开发语言>Java > Thymeleaf对象的使用:数字对象

Thymeleaf对象的使用:数字对象

2019年10月13日  | 移动技术网IT编程  | 我要评论

乌克兰撤离重武器,腾讯广告词,墨纸音译

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

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网