Учитывая этот selectOneMenu кодselectOneMenu не показывает правильное значение, но добытчик получает его
<h:selectOneMenu value="#{fb.aktionTxt}">
<f:selectItems value="#{myBean.FBAEnum}" />
</h:selectOneMenu>
этот компонент
public FehlerBewertungAktionEnum[] getFBAEnum() {
return FehlerBewertungAktionEnum.values();
}
это перечисление
public enum FehlerBewertungAktionEnum {
NEKO_NEKO("NEK0-NEK0 "),
CURSOR_PARAMETER("CURSOR-PARAMETER "),
CURSOR_LEER("CURSOR-LEER ");
private final String str;
FehlerBewertungAktionEnum(String str) { this.str = str;}
public String toString(){ return str; }
}
и значение базы данных aktionTxt
|CURSOR_LEER | (20 chars)
Почему он отображает NEK0-NEK0 (первый элемент перечисления) вместо CURSOR_LEER в моем selectOneMenu, когда получатель возвращает |CURSOR_LEER |
? Я отлаживал страницу jsf и обнаружил, что нет <option>
имеет атрибут selected
.
Странная вещь также в том, что я могу создать новый элемент с тем же кодом jsf, и он правильно сохранит мой новый объект в БД. Я уверен, что здесь нет способа использовать trim()
, так как я не могу сохранить свой объект fb
.
Ошибки, подобные этому, наиболее трудно обнаружить, особенно если есть несколько других более очевидных подозреваемых :) –