Вопрос
Пытаюсь сохранить все материалы презентации в xhtml в этом проекте, и мне нужно отформатировать некоторые значения в теге SelectItem, которые имеют значение BigDecimal и должны выглядеть как currency.Есть ли в любом случае возможность применить <f:convertNumber pattern="$#,##0.00"/>
Внутри <f:selectItem>
пометка?
Есть какой-нибудь способ сделать это или обойти его, который не включает в себя включение этого в java-код?
Решение
Проведя здесь еще несколько исследований, я почти убежден, что это невозможно при текущей реализации JSF.Просто нет возможности преобразовать значение.
http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/f/selectItem.html
tld показывает itemLabel
собственность как являющаяся ValueExpression
и содержание в организме <f:selectItem>
как нечто пустое.Таким образом, внутри одного из этих тегов не должно быть ничего, и метка должна указывать на дословное значение в модели Java.Таким образом, он должен быть отформатирован исходя из Java-модели.
Другие советы
будучи новичком в jsf, у меня была похожая проблема, возможно, мое решение полезно, возможно, оно не в "духе jsf".
я только что создал пользовательский taglib и расширил класс (в моем случае org.apache.myfaces.component.html.ext.HtmlCommandButton) и переопределил установщики для применения пользовательских параметров.
так что вместо <t:commandButton/>
я использовал <mytags:commandButton/>
, который настолько гибкий, насколько я хочу.
Вы могли бы настроить конвертер с таким шаблоном, но это звучит как полная противоположность тому, что вы хотите.