rejectValue и использовать в JSP. Spring3 MVC; JSP; - PullRequest
1 голос
/ 07 декабря 2011

В моем приложении есть страница регистрации с обязательными флажками.Если форма отправляется без помеченных флажков, я хочу, чтобы при попытке отправить форму показывалось сообщение об ошибке.

В моем контроллере у меня есть:

 if(req.getParameter("tcCheck")==null)
    result.rejectValue("tcCheck","Check.tc", "Need to accept terms and conditions");

мой jsp:

<form:form modelAttribute="user" method="post">
   ...
   <form:errors path=tcCheck/>
   ...
</form:form>

Во время выполнения я получаю эту ошибку:

Ошибка 500: org.springframework.beans.NotReadablePropertyException: недопустимое свойство 'tcCheck' класса бина [com.domgen.recupl.domain.User]: свойство bean-компонента 'tcCheck' недоступно для чтения или имеет недопустимый метод получения: соответствует ли тип возвращаемого значения метода получения параметру установщика?

Объект домена пользователяне имеет tcCheck в качестве одной из переменных его экземпляра и, конечно, он не должен идти в бине User.

Мне интересно, как я могу отобразить свое сообщение об ошибке без редактирования бина User?Спасибо.

A

Ответы [ 3 ]

0 голосов
/ 08 декабря 2011

В вашем контроллере: используйте метод addError

if(req.getParameter("tcCheck")==null)
    result.addError(new ObjectError("tcCheck", "error message"));

В вашем jsp: используйте атрибут элемента вместо пути

<form:form modelAttribute="user" method="post">
  ...
  <form:errors element="tcCheck"/>
  ...
</form:form>

Помогает!?

0 голосов
/ 14 декабря 2011

Чтобы использовать такие ошибки формы, у вас должен быть получатель на вашем объекте поддержки формы, который соответствует полю формы.поэтому, если вы хотите использовать

<form:errors path="tcCheck"/>

, у вас должен быть метод getTcCheck () для вашего пользовательского объекта или подобъекта вашего пользовательского объекта.т.е.

<form:errors path="subObject.tcCheck"/>

, в этом случае вы бы использовали rejectValue ("subObject.tcCheck", ...

0 голосов
/ 07 декабря 2011

Как насчет использования errors.rejectValue?См. здесь для образца.

...