2015-11-13 137 views
2

是否可以在百里香叶中打印数字作为十六进制字符串?使用百里香格式化十六进制数字

我有一个数字(例如:16711680),我想在页面上打印为0xFF0000。

我可以通过String.format("0x%06X", (0xFFFFFF & intColor));将值发送到上下文之前做到这一点。我宁愿让视图图层格式化值。如何显示号码应该是它的关注点。

我查看了thymeleaf提供的所有#{numbers}格式化程序。似乎没有提供这种类型的格式。

回答

1

您可以使用TType Operator来调用类的静态方法。所以你可以像往常一样打电话给String.format()。例如。

${T(java.lang.String).format('0x%06X', intColor)} 

这里唯一的一个小问题就是你不能在Thymeleaf中执行位操作。你要么需要做到这一点,你将它添加到模型之前,或许看Integer.toHexString(),这将让你格式化你的电话号码,就好像它是无符号:

'0x'+${T(java.lang.Integer).toHexString(intColor).toUpperCase()} 

这第二种方法需要一些额外的工作,获得领先的0x并将字符大写。