Попытка сохранить все материалы презентации в xhtml в этом проекте, и мне нужно отформатировать некоторые значения в теге selectItem, имеющие значение BigDecimal, и мне нужно сделать его похожим на валюту. Есть ли способ применить <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
Я просто создал настраиваемую библиотеку тегов и расширил класс (в моем случае org.apache.myfaces.component.html.ext.HtmlCommandButton) и переопределил установщики для применения настраиваемых параметров.
поэтому вместо <t:commandButton/> я использовал <mytags:commandButton/>, который настолько гибок, насколько я хочу.
Это на самом деле полностью в духе JSF. Я стараюсь писать как можно меньше кода, зависящего от JSF. В основном это просто высокие цели дизайна, но я думаю, что это делает наш проект более понятным, более удобным в обслуживании и т. д.
опять таки. Я только что заметил, что уже ответил на этот же вопрос несколько месяцев назад. ТАК становится моим личным блокнотом.