这个奇怪的问题让我损失了好几天, 我重复检查了一切......但我所选择的OneMenu根本行不通......我不明白为什么。
这是我的密码:
我的jshf(我的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() : "";
}
}
它与我创建时预期的一样有效( 它通过选定值), 但当我试图编辑所选类型实体时, 所选类型实际上从未被选中 。 我尝试用原始面3.1. 1 和 3. 2 来尝试, 但是在查看/ 编辑模式下, 我无法获得选中值 。
我做错什么了?
提前感谢!