Я хочу использовать упрощенный тег select one, который автоматически генерирует список выбранных элементов для перечислений. Итак, результатом будет:
<s:enumSelectOneMenu value="#{myBean.enumValue}"/>
Итак, внутри компонента я могу получить тип перечисления и получить все значения перечисления, используя отражение. Итак, в основном мне нужно переопределить единственный метод validateValue(..) из UiSelectOne и поместить список UiSelectItems в качестве дочернего элемента (в так же, как это делается в Tomahawk, см. компонент SelectOneLanguage).
Но что еще нужно сделать? Мне нужно описать атрибуты тегов в моем собственном taglib.xml, но jsf-impl.jar не содержит facelets xml - только файл taglib, поэтому я не могу просто скопировать все оттуда. Кроме того, если я статически опишу тег в своем taglib.xml, мне придется обновлять его вручную в каждой новой версии JSF, что совсем нехорошо. Итак, как лучше всего расширить компонент в JSF и избежать большого количества ручного копирования и вставки?
P.S. Я использую JSF 2.0, но способ композитных граней мне не подходит, так как он создает много проблем, так как составной элемент обертывается компонентом NamingContainer. Поэтому мне нужен только «олдскульный» способ создания пользовательских компонентов.
Спасибо.
<h:selectOneMenu>
? JSF имеет встроенный конвертер enum. Или вы не хотите каждый раз указывать<f:selectItems>
? - person BalusC   schedule 14.10.2011<h:selectOneMenu value="#{polis.currency}" > <f:selectItems value="#{currency}" itemValue="#{s}" itemLabel="#{s.display}" var="s" /> </h:selectOneMenu>
или<h:enumSelectOneMenu value="#{polis.currency}" />
? Upd: правильно, мне нужно избегать всегоselectItems
персонала - person bitec   schedule 14.10.2011