如何访问JSR-303消息中的字段值?

Hor*_*ome 1 field substitution bean-validation

我想以下列方式自定义我的错误消息:

假设以下类Person的声明:

@Size(min=10, max=200, message="{name.size}")  
private String name;
Run Code Online (Sandbox Code Playgroud)

在ValidationMessages.properties中声明的错误消息中,我想输出字段值,即我想做这样的事情:

name.size=The name '{name}' is invalid, its size must be between {min} and {max}
Run Code Online (Sandbox Code Playgroud)

假设字段'name'的内容是"abc".然后错误消息应如下所示:

名称"abc"无效,其大小必须介于10到200之间

min和max的替换有效,但我怎样才能为字段值执行此操作?

小智 5

使用BeanValidation 1.0,我认为有一种方法可以使用消息插值器来获取值.我相信使用bean验证1.0的hibernate实现,这可以作为其捆绑包的一部分.

使用BeanValidation 1.1,这可以通过EL表达式获得.现在可以通过名称validatedValue访问字段值.如果您可以尝试使用最新版本.您的邮件将如下所示:

name.size=The name '${validatedValue}' is invalid, its size must be between {min} and {max}
Run Code Online (Sandbox Code Playgroud)