I am using spring + hibernate validator. I am trying to use ${validatedValue} but it does not work. My core dependencies:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.0.Final</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.4</version>
</dependency>
My field is annotated by @Email with validatedValue provided as EL:
@Column(name = "VALUE_", nullable = false)
@Email(message = "Specified e-mail address: ${validatedValue} is invalid.")
private String value;
If I provide "thisIsNotEmail" as email validation results me in "Specified e-mail address: $validatedValue is invalid" message not "Specified e-mail address: thisIsNotEmail is invalid". Do anyone has idea why it is not working? I tryed on WindFly10 and Pivotal 3.1 but still no luck to get it work...
I would like to have a result like here: http://www.journaldev.com/3626/hibernate-validator-jsr303-example-tutorial
Solved by changing configuration of messageSource.. I got useCodeAsDefaultMessage to true which should be false:
messageSource.setUseCodeAsDefaultMessage(false);
Full bean:
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("i18n/messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setUseCodeAsDefaultMessage(false);
messageSource.setFallbackToSystemLocale(false);
return messageSource;
}