2013-11-18 3 views
1

Я использую все 1.7-моментальный снимок GenericEnumConverter. Он работает так, как ожидалось. Я хотел бы знать, возможно ли на ярлыке элемента показать свойство enum вместо его значения. Я смог отобразить только перечисление. Как это:omnifaces genericEnumConverter и enum properties

public enum ErrorType { 
    ERR_001, ERR_002, ERR_003; 

    private String number; 

    static { 
     ERR_001.number = "001"; 
     ERR_002.number = "002"; 
     ERR_003.number = "003"; 
    } 

    public String getNumber() { 
     return number; 
    } 
} 

<f:selectItems value="#{ErrorType}" var="er" itemLabel="#{er.number}" itemValue="#{er}" /> 

ответ

2

я понимаю, что вы используете <o:importConstants> для <f:selectItems value>? GenericEnumConverter не заботится об этом. Он играет только роль при преобразовании значения элемента select и значения компонента. Он не играет никакой роли при отображении ярлыков элементов.

<o:importConstants> В основном значения enum доступны в области EL как Map<String, Enum>. Хотя <f:selectItems> может принимать Map<K, V>, он, однако, не поддерживает итерацию по Map<K, V> на var. Вам необходимо сначала преобразовать его в Map.Entry[]:

<f:selectItems value="#{ErrorType.entrySet().toArray()}" var="er" 
    itemValue="#{er.value}" itemLabel="#{er.value.number}"/> 
Смежные вопросы