#java #quarkus #quarkus-qute
#java #quarkus #quarkus-qute
Вопрос:
Все сказано в названии. Я хочу преобразовать double в строку с 2 десятичными знаками.
Я попробовал на примере quarkus :
@TemplateExtension(namespace = "str")
class StringExtensions {
static String format(String fmt, Object... args) {
return String.format(fmt, args);
}
static String reverse(String val) {
return new StringBuilder(val).reverse().toString();
}
}
И это мой шаблон
{str:format('%.2f', total)}
Но это всегда приводит к NOT_FOUND .
Единственный способ — поместить :
static String formatNumber(Double num) {
return String.format("%.2f", num);
}
и измените мой шаблон :
{total.formatNumber}
Есть ли лучший способ? Я использовал расширение quarkus-rest-easy-qute и quarkus-qute, оба они одинаковы.
Ответ №1:
была ошибка в том, как обрабатывались переменные для методов расширения с пространством имен. Я только что создал PR с исправлением: https://github.com/quarkusio/quarkus/pull/14226 .
Уродливым обходным путем является использование дополнительного «фиктивного» параметра в шаблоне, например {str:format('%.2f', total, 1)}
, и игнорирование этого параметра в указанном формате.