JSF 2: может ли EL сделать что-то подобное? - PullRequest
2 голосов
/ 28 декабря 2010

Это работает:

<h:outputText value="Active Locale : " /> 
#{view.locale}

Но как мне добиться чего-то подобного с EL?

<h:outputText value="Active Locale Decimal Separator : " /> 
#{new DecimalFormat(view.locale).decimalFormatSymbols.groupingSeparator}

1 Ответ

4 голосов
/ 28 декабря 2010

Интересно, что именно вы имеете в виду под groupingSeparator?

Стандарт java.text.DecimalFormat не имеет ни поля, ни метода getGroupingSeparator, ни groupingSeparator. Так что я немного в неведении, чего ты на самом деле пытаешься достичь. Вы хотели бы напечатать _? Так что, если локальным является en_uk, то результатом будет "_"?

Независимо от того, что именно вы хотите, вы можете в значительной степени сделать все, создав собственную функцию EL. В EL это будет выглядеть так:

#{my:someFormatting(view.locale)}

someFormatting затем реализуется как статический метод Java, которому вы затем назначаете свое собственное пространство имен (в данном случае «my»). Если вам это нужно, посмотрите учебник, который поможет вам в этом.

Существует также несколько стандартных функций EL, доступных для Facelets. Это функции JSTL, определенные в следующем пространстве имен:

xmlns:fn="http://java.sun.com/jsp/jstl/functions"

В зависимости от того, что именно вам нужно, они могут также оказать некоторую помощь.

...