我失去了這個奇怪的問題的日子,我加倍檢查了一切,但我的selectOneMenu根本不工作,我不明白爲什麼。primefaces selectOneMenu不工作時它應該
因此,這裏是我的代碼:
我的JSF
<p:selectOneMenu id="entityType"
value="#{entityBean.entity.type}"
style="width:240px;"
converter="entityTypeConverter"
valueChangeListener="#{entityBean.entityTypeListener}"
required="true">
<f:selectItems value="#{entityBean.typeList}"
var="et"
itemLabel="#{et.name}"
itemValue="#{et}" />
</p:selectOneMenu>
我的轉換器:
@FacesConverter("entityTypeConverter")
public class EntityTypeConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
Long id = Long.parseLong(value);
return EntityType.findEntityType(id);
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
return value instanceof EntityType ? ((EntityType) value).getId().toString() : "";
}
}
它的工作原理是,當我創建(其將選擇的值)預計,但是當我嘗試編輯實體時,所選類型實際上從未被選中。我嘗試使用primefaces 3.1.1和3.2,但在查看/編輯模式下無法獲取所選值。
我在做什麼錯?
在此先感謝!
實體和entityType只是幻想名稱 –
使用'p:ajax'而不是valueChangeListener ... – Daniel
沒有valueChangeListener的同樣的問題。我的問題是當我加載編輯頁面時獲取選定的值。我認爲值=「#{entityBean.entity.type}」和轉換器應該這樣做,但顯然這不適用於我。 –