是否可以在百里香葉中打印數字作爲十六進制字符串?使用百里香格式化十六進制數字
我有一個數字(例如:16711680),我想在頁面上打印爲0xFF0000。
我可以通過String.format("0x%06X", (0xFFFFFF & intColor));
將值發送到上下文之前做到這一點。我寧願讓視圖圖層格式化值。如何顯示號碼應該是它的關注點。
我查看了thymeleaf提供的所有#{numbers}格式化程序。似乎沒有提供這種類型的格式。
是否可以在百里香葉中打印數字作爲十六進制字符串?使用百里香格式化十六進制數字
我有一個數字(例如:16711680),我想在頁面上打印爲0xFF0000。
我可以通過String.format("0x%06X", (0xFFFFFF & intColor));
將值發送到上下文之前做到這一點。我寧願讓視圖圖層格式化值。如何顯示號碼應該是它的關注點。
我查看了thymeleaf提供的所有#{numbers}格式化程序。似乎沒有提供這種類型的格式。
您可以使用T
Type Operator來調用類的靜態方法。所以你可以像往常一樣打電話給String.format()
。例如。
${T(java.lang.String).format('0x%06X', intColor)}
這裏唯一的一個小問題就是你不能在Thymeleaf中執行位操作。你要麼需要做到這一點,你將它添加到模型之前,或許看Integer.toHexString(),這將讓你格式化你的電話號碼,就好像它是無符號:
'0x'+${T(java.lang.Integer).toHexString(intColor).toUpperCase()}
這第二種方法需要一些額外的工作,獲得領先的0x
並將字符大寫。
如果您使用的是OGNL而不是Spring-EL(如Andrew的答案),調用靜態方法的語法是@[email protected]
。例如:${@[email protected](someNumber)}