Я пытаюсь получить некоторые валидаторы работы с Spring 3. Я получаю сообщение об ошибке:Spring 3 Ошибка проверки
org.springframework.beans.NotReadablePropertyException: Invalid property 'name' of bean class [java.lang.String]: Bean property 'name' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
Мой вопрос, это то, что ошибка в виду. Я считаю, что в методе rejectValue он вызывает getName() на myobj. Это говорит о том, что myobj.getName() не существует? Потому что я могу сказать, что так оно и есть. В противном случае этот метод даже не будет компилироваться.
public void validate(Object target, Errors errors) {
MyObject myobj = (MyObject)target;
String name = myobj.getName();
if(name.length() >100 || name.length() < 10) {
errors.rejectValue("name", "fieldLength");
}
}
Вот MyObject:
public class MyObject {
public MyObject() {
super();
// TODO Auto-generated constructor stub
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
И в моем JSP:
<form:form name="MyForm" commandName="myobj" method="post" action="${testurl}">
<table id="mytable" width="100%">
<tbody>
<tr>
<td colspan="2">
<form:errors path="name"/>
</td>
</tr>
<tr>
<td>
Name:
</td>
<td>
<form:input path="name"/>
</td>
</tr>
</tbody>
</table>
Мой контроллер:
@ActionMapping(params="myaction=test")
public void test(@ModelAttribute("myobj") MyObject myobj, BindingResult bindingResult,
ActionRequest request, ActionResponse response, SessionStatus sessionStatus) {
}
testValidator.validate(myobj, bindingResult);
if (!bindingResult.hasErrors()) {
response.setRenderParameter("myaction", "nextpage");
} else {
response.setRenderParameter("myaction", "test");
}
}
Можете ли вы показать нам код класса 'MyObject'? – skaffman
Я отредактировал, чтобы добавить это. – Michaela
Почему сообщение об ошибке говорит 'MyObj' вместо' MyObject'? – axtavt