是否可以在百里香叶中打印数字作为十六进制字符串?使用百里香格式化十六进制数字
我有一个数字(例如: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)}