Use enum in h:selectManyCheckboxで説明されているEnumConverterを書いていますか?このコンバーターは、編集可能なプライマリのデータテーブルでは正しく動作しないことがわかるまで、すべてのことがうまくいきました。 Iコンポーネントに与えた属性を見つけることができなかった編集可能なプライマリのEnumConverter
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value instanceof Enum) {
component.getAttributes().put(ATTRIBUTE_ENUM_TYPE, value.getClass());
return ((Enum<?>) value).name();
} else {
throw new ConverterException(new FacesMessage("Value is not an enum: " + value.getClass()));
}
}
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Class<Enum> enumType = (Class<Enum>) component.getAttributes().get(ATTRIBUTE_ENUM_TYPE);
try {
return Enum.valueOf(enumType, value);
} catch (IllegalArgumentException e) {
throw new ConverterException(new FacesMessage("Value is not an enum of type: " + enumType));
}
}
後者の方法(getAsObject
)におけるMAP属性:問題は、私は次のようgetAsStringとgetAsObjectメソッド内部属性を追加しているがあることです。しかし、pprimefacesのうち、編集可能なデータテーブルのすべては問題ありません。これを達成するための解決策はありますか?
どうもありがとう!私のために働いた。 – demdem