我希望包含请求中传递的字段值,以便在验证消息中包含。但整个字符串按原样显示,而不替换字段值。我在这里错过了什么吗?
我使用以下版本: 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.
我的BV pom文件:
<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>
答案 0 :(得分:1)
EAP 6附带Bean Validation 1.0 / Hibernate Validator 4.2,这些库优先。您可以尝试排除这些容器模块(请参阅例如this post以获取有关如何执行此操作的说明)并打包您自己的依赖项。但请注意,其他模块可能需要容器提供的版本。
答案 1 :(得分:0)
@Gunnar是对的。为了避免jboss加载默认bean验证api,我在web-inf目录下创建了以下xml文件并解决了问题。
的JBoss部署-structure.xml:
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="javax.validation.api"/>
<module name="org.hibernate.validator"/>
</exclusions>
</deployment>
</jboss-deployment-structure>