0
我正在嘗試爲自定義對象使用轉換器,這是在primefaces'selectCheckboxMenu
中使用的。在selectCheckboxMenu中使用自定義對象的轉換器不起作用
這是JSF部分:
<p:outputLabel value="#{msg.cars}: " for="cars" />
<p:selectCheckboxMenu id="cars"
value="#{controller.selected.cars}"
converter="carConverter" label="#{msg.cars}"
filter="true" filterMatchMode="startsWith"
panelStyle="width:200px">
<f:selectItems
value="#{controller.available.cars}" />
<f:converter converterId="carConverter" />
</p:selectCheckboxMenu>
這是我的轉換器:
@FacesConverter("carConverter")
public class CarConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String newValue) {
return null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object object) {
if (object == null) {
return "";
}
if (object instanceof Car) {
Car car = (Car) object;
String name = car.getName();
return name;
} else {
throw new ConverterException(new FacesMessage(object + " is not a valid car"));
}
}
}
getAsString()
返回正確的字符串。但是selectCheckboxMenu
仍然列出了對象而不是字符串。
我錯過了什麼嗎?
轉換器不是爲標籤,而是價值。 – BalusC