Я не могу получить значение типа Enum для DropDownChoice, связанного с классом SelectOption [], я вижу, что объект имеет ожидаемое значение, но я не знаю, как его получить в моей модели.
Изначально DropDownChoice работал со значениями, определенными в модели, и работает хорошо, но мне нужно показать детали каждого значения, там я застрял
@Entity
public class Asegurado extends EntityBase {
@Enumerated(EnumType.STRING)
private Genero genero = Genero.M;
public static enum Genero {
M, F, D
}
public Genero getGenero() {
return genero;
}
public void setGenero(Genero genero) {
this.genero = genero;
}
}
Опция выбора:
public class SelectOption implements Serializable{
private static final long serialVersionUID = 1L;
private Enum<?> name;
private String value;
public SelectOption(Enum<?> name, String value) {
this.name = name;
this.value = value;
}
public Enum<?> getName() {
return name;
}
public void setName(Enum<?> name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}
В компоненте приложения:
SelectOption[] options = new SelectOption[] {
new SelectOption(Genero.M, "Masculino"),
new SelectOption(Genero.F, "Femenino"),
new SelectOption(Genero.D, "Diferenciado")
};
Asegurado wase = new Asegurado();
ChoiceRenderer<Enum> choiceRenderer = new ChoiceRenderer<Enum>("value", "name");
final DropDownChoice<Asegurado.Genero> generoWk = new DropDownChoice(
"genero",
new Model<Asegurado.Genero>(Asegurado.Genero.D),
Arrays.asList(options),
choiceRenderer
);
В onSubmit () проблема в:
asegurado.setGenero(generoWk.getModelObject());
Ошибка: «Не может быть сотворено»
Пожалуйста, помогите.