2015-11-13 4 views
2

Возможно ли напечатать число в виде шестнадцатеричной строки в тимелеафе?Форматирование шестнадцатеричного числа с тимелеафом

У меня есть номер (например: 16711680), и я хочу напечатать его как 0xFF0000 на странице.

Я могу сделать это перед отправкой значения в контекст через String.format("0x%06X", (0xFFFFFF & intColor));. Я бы предпочел, чтобы формат слоя отображал значение. Как должно отображаться число, это проблема.

Я просмотрел все формы {num}, которые предоставляет тимелеаф. Кажется, что нет ничего подобного в форматировании.

ответ

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 и заглавные буквы.

0

Если вы используете OGNL, а не Spring-EL (как в ответе Андрея), синтаксис вызова статических методов - @[email protected]. Например: ${@[email protected](someNumber)}

Смежные вопросы