Spring:我可以为模型属性定义标签吗?

时间:2013-12-30 18:53:53

标签: java spring spring-mvc

我正在Spring框架中构建验证,并希望显示自定义(本地化)错误消息。例如:字段'重复密码'不能为空。

如何定义字段标签并将其作为参数传递给错误消息?

这是我的表单对象,带有一些验证约束

public class RegisterForm
{
    @NotEmpty
    @Email
    private String email;
    @NotEmpty
    @Length( min=6, message = "{register.error.password.length.min}")
    private String password;
    @NotEmpty
    private String repeatPassword;
}

我对 NotEmpty 约束的自定义消息是这样的:

NotEmpty=Field {0} cannot be empty
消息中的

{0}将替换为字段名称( repeatPassword )。如何将字段标签(重复密码密码wiederholen )传递给此邮件?

1 个答案:

答案 0 :(得分:2)

我认为您不能手动将字段标签传递给邮件。但是,您可以在消息属性中指定标签,该标签将根据字段名称进行解析。

因此,在消息属性中,您将拥有NotEmpty的自定义参数化文本以及每个字段名称的标签。

# Parameterized custom message
NotEmpty=Field {0} cannot be empty 

# Field labels
email=Email
password=Password
repeatPassword=Repeat password

然后,完整的消息将被解析为Field Repeat password cannot be empty等。

对于不同的标签翻译,您只需在特定于语言环境的属性文件中指定它们。