Я новичок в Spring. Я использую Spring 3.0.5 RELEASE. Мое требование состоит в том, что я хочу проверить поля в форме, используя аннотации Spring. Код, который я использую для этого, выглядит следующим образом. Это класс валидатора, реализующий интерфейс валидатора.
public class FluctuationValidator implements Validator{
@Override
public boolean supports(Class<?> clazz) {
return ReportsCommand.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object command, Errors errors) {
ReportsCommand reportsCommand = (ReportsCommand) command;
System.out.println("Inside the validate method of validator class");
ValidationUtils.rejectIfEmpty(errors, "callType", "PackageNameIsRequired");
}
}
Здесь ReportsCommand — это класс, в котором есть данные, введенные в форму. В контроллере код выглядит следующим образом.
@Autowired
FluctuationValidator fluctuationValidator;
public ModelAndView showForm(@ModelAttribute("reports") ReportsCommand model, ModelAndView modelAndView,BindingResult result,
HttpServletRequest request, HttpServletResponse response) throws Exception {
fluctuationValidator.validate(modelAndView,result);
if (result.hasErrors()) {
modelAndView = new ModelAndView("report-generate-form");
return modelAndView;
}
}
В файле jsp я использую
<form:errors path="callType" cssClass="error" />
Что-то не так в моем коде. Если я использую это, я получаю org.springframework.beans.NotReadablePropertyException: недопустимое свойство callType класса bean [org.springframework.web.servlet.ModelAndView]: свойство Bean callType не доступен для чтения или имеет недопустимый метод получения: соответствует ли тип возвращаемого значения метода получения типу параметра метода установки? Исключение.
Для свойства callType он не ищет в классе ReportsCommand, а ищет в весеннем классе ModelAndView. Что может быть pbm. Может ли кто-нибудь сказать мне...