Как добавить пользовательские сообщения об ошибках в валидаторе Hibernate - PullRequest
5 голосов
/ 17 августа 2011

У меня есть простой класс, подобный этому,

import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;

public class Form implements Serializable {
   @NotNull
   @Length(min = 2, max = 20)
   private String lastName;
}

У меня есть файл messages.properties в пути к классам.Затем он загружается через Spring bean следующим образом:

<bean name="validator"
      class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="validationMessageSource">
        <ref bean="resourceBundleLocator"/>
    </property>
</bean>

<bean name="resourceBundleLocator" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basenames">
        <list>
            <value>classpath*:messages.properties</value>
        </list>
    </property>
</bean>

Все, что я хочу, это настроить сообщения об ошибках в соответствии с проверенным bean-компонентом.Другими словами, я хочу, чтобы каждый объект ConstraintViolation возвращал сообщение об ошибке, которое я определил в своем файле свойств, вместо сообщения по умолчанию.Можно ли добавить свойство сообщения со значением наподобие этого формата {xxx.yyyy.zzzz} и сослаться на это сообщение из файла messages.properties?

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();
    Set<ConstraintViolation<Form>> inputErrors = validator.validate(form); 

Если я хочу настроить сообщение по умолчанию для @NotNull и @Length, как я могу это сделать?

Мой опыт проверки Hibernate ноль ,Любой пример кода или пошаговая инструкция будет принята с благодарностью.

1 Ответ

4 голосов
/ 17 августа 2011

У вас есть этот файл пакета ресурсов, содержащий значения сообщений.

Я думаю, что вы должны использовать путь к аннотации ie @NotNull, чтобы переопределить сообщение вручную!как javax.validation.constraints.NotNull=Notnull error happened! или что-то в этом роде!

Ищите здесь:

Hibernate Validator - Сообщение об ошибке

Надеюсь, что поможет

...