0
私は、プリムフェイス '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