Thymeleafは、主にorg.thymeleaf.expression.Numbersクラスを使用して数値を処理し、テンプレート内の#numbersオブジェクトを使用して数値を処理します。
開発環境:IntelliJ IDEA 2019.2.2
Spring Bootバージョン:2.1.8
demoという名前の新しいSpringBootプロジェクトを作成します。
Thymeleafの依存関係をpom.xmlに追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
1つの整数フォーマット
4つの方法があります:
(1)formatInteger(number、digits)
最初のパラメーターは単一の数値です。小数点がある場合は切り上げられ、2番目のパラメーターは最小の整数桁に設定されます。十分ではなく、0で埋められます(以下と同じ)
(2)ArrayFormatInteger(numbers、digits)が
配列に渡され、処理された配列が返されます
(3)listFormatInteger(numbers、digits)がに
渡されますリスト、処理されたリストが返されます
(4)setFormatInteger(numbers、digits)が
Setに渡され、処理された配列が返されます。Set の最後の
4つのメソッドには、3番目のパラメーターを渡すためのオーバーロードされたメソッドがあります。千の区切り記号を識別し
ます
。POINT:「。」を使用します。COMMA:「、」を
使用します。WHITESPACE:「」(スペース)を使用します。NONE:
区切りを使用しません。文字
DEFAULT:ロケールオブジェクトに従って決定されます。
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)
11
10
10,000,000
10.000.000
arrayFormatInteger(numbers,digits)
11
listFormatInteger(numbers,digits)
11
setFormatInteger(numbers,digits)
0011
第二に、10進形式
4つのメソッドもあります。
(1)formatDecimal(number、intDig、decDig)
最初のパラメーターは単一の数値であり、2番目のパラメーターは整数の最小桁数を設定し(十分でない場合は0で埋められます)、 3番目のパラメーターは小数点以下の桁数を設定します
(2)arrayFormatDecimal(numArray、intDig、decDig)が
配列に渡され、処理された配列が返されます
(3)listFormatDecimal(numList、intDig、decDig)が
リストに渡され、処理されますリストが返されます
(4)setFormatDecimal(numSet、intDig、decDig)が
Setに渡され、処理されたSetに返され
ます。これら4つのメソッドには2つのオーバーロードされたメソッドがあります。例としてformatDecimalを取り上げます。
(a)formatDecimal(number、intDig 、decDig、decPoint)
decPointは、小数点として使用される記号を表します。値はPOINT、COMMA、WHITESPACE、NONE、およびDEFAULTです。
(b)formatDecimal(number、intDig、separator、decDig、decPoint)
セパレーターは、千のセパレーターとして使用される記号を示し、値はPOINT、COMMA、WHITESPACE、NONE、およびDEFAULTでもあります。
1、src / main / resources /テンプレート/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/10進
ページ出力:
10
10.60
00010.60
10000000,00
10000000.00
10.000.000.00
3、パーセンテージフォーマット
小数の書式設定と同様に、4つのメソッドもあります。その中で
formatPercent(number、intDig、decDig)を使用して単一の数値を処理し
ます。 最初のパラメーターは単一の数値で、2番目のパラメーターは最小の数値に設定されます。整数の(十分でない場合は0が追加されます)、3番目のパラメーターは小数点以下の桁数を保持するように設定されます
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 /パーセント
ページ出力:
12.30%
00,012.30%
四、シーケンス法
sequenceメソッドは整数配列を返します。
(1)sequence(from、to)
は、開始値と終了値を設定します。fromがtoより大きい場合、デフォルトのステップは1で、それ以外の場合は-1です。
(2)シーケンス(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 /パーセント
ページ出力:
1
3
----------
4
2