Тип является перечислимым свойством в объекте.
jsp:
<form:radiobutton path="type" value="Male" />
Java:
public enum TestType
{
Male, Female;
}
и получил ошибку
Не мог преобразовать значение 'Штекер' из типа 'java.lang. Строка' для ввода 'java.lang. Перечисление'; рассуждайте = 'java.lang. Перечисление не является перечислимым типом'
Возможно, свойство type
командного объекта обозначено как Enum
вместо TestType
?
Сделайте следующее
public enum TestType {
MAN("Man"),
FEMALE("Female");
private String description;
private TestType(String description) {
this.description = description;
}
public String getValue() {
return name();
}
public void setValue(String value) {}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
И зарегистрируйте пользовательский биндер следующим образом
dataBinder.registerCustomEditor(TestType.class, new PropertyEditorSupport() {
@Override
public void setAsText(String value) throws IllegalArgumentException {
if(StringUtils.isBlank(value))
return;
setValue(TestType.valueOf(value));
}
@Override
public String getAsText() {
if(getValue() == null)
return "";
return ((TestType) getValue()).name();
}
});
Затем
<form:radiobuttons path="type" items="${testTypeList}" itemLabel="description"/>
Вы устанавливаете TestType следующим образом
model.addAttribute(TestType.values());