默认情况下,org.hibernate.validator.constraints.Email
会显示not a well-formed email address
,但如果用户只需输入格式良好的电子邮件foo is not a well-formed email address
,我就会显示foo
。所以我需要一个foo
的占位符。我的域对象中的属性使用@Email
进行注释。
我的资源包文件中有Email = {0} is not a well-formed email address
,当用户为电子邮件字段输入email is not a well-formed email address
时显示foo
。
是否可以生成输入的值并显示错误消息?
我正在使用Hibernate 3.5和Spring MVC 3。
感谢。
答案 0 :(得分:1)
如果您正在使用Hibernate Validator作为Bean验证提供程序,则可以使用4.2版中引入的ValueFormatterMessageInterpolator
。为此,只需在检索Validator
时设置插值器,例如像这样:
Configuration<?> configuration = Validation.byDefaultProvider().configure();
Validator validator = configuration
.messageInterpolator(new ValueFormatterMessageInterpolator(
configuration.getDefaultMessageInterpolator()))
.buildValidatorFactory()
.getValidator();
使用该插补器,您可以在错误消息中通过占位符{validatedValue}
引用经过验证的值:{validatedValue} is not a well-formed email address
。
您可以在HV reference guide中找到更多信息。