Включить значение поля в сообщение об ошибке с помощью Hibernate Validator

Я хочу включить значение поля, переданное в запрос, для включения в сообщение проверки. но вся строка отображается как есть, без подстановки значения поля. Я что-то пропустил здесь??

Я использую следующие версии: javax.validation - 1.1.0.Final hibernate-validator - 5.0.1.Final

http://beanvalidation.org/1.1/spec/#message-expressions

Мой класс бобов:

@NotNull(message = "custom message for not null")
@Range(message="param1 ${validatedValue} must be within {min} and {max}.", min=0, max=90)
protected Double param1;

Фактическое сообщение об ошибке, отображаемое после нарушения диапазона:

 param1 ${validatedValue} must be within 0 and 90.

мой файл pom для BV:

   <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.1.0.Final</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.0.1.Final</version>
        <scope>provided</scope>
    </dependency>

person kumar    schedule 06.11.2013    source источник
comment
Это действительно должно работать. Возможно, у вас есть реализация BV 1.0 в вашем классе, которую вы (непреднамеренно) используете? Какую среду/контейнер вы используете?   -  person Gunnar    schedule 06.11.2013
comment
@Gunnar - я отредактировал свой пост, показав версию BV, которую я использую. Jboss EAP 6.0 — это контейнер, который я использую.   -  person kumar    schedule 06.11.2013


Ответы (2)


EAP 6 поставляется с Bean Validation 1.0/Hibernate Validator 4.2, и эти библиотеки имеют приоритет. Вы можете попытаться исключить эти контейнерные модули (см., например, эту опубликуйте для объяснения того, как это сделать) и упакуйте свои собственные зависимости. Но имейте в виду, что для других модулей могут потребоваться версии, предоставляемые контейнером.

person Gunnar    schedule 07.11.2013

@Гуннар был прав. Чтобы jboss не загружал API проверки bean-компонентов по умолчанию, я создал следующий файл xml в каталоге web-inf, и проблема была решена.

jboss-deployment-structure.xml:

 <jboss-deployment-structure>
   <deployment>
   <exclusions>
      <module name="javax.validation.api"/>
      <module name="org.hibernate.validator"/>
    </exclusions>
   </deployment>
 </jboss-deployment-structure>
person kumar    schedule 08.11.2013