2011-01-26 94 views

回答

40

JSR 303 default message interpolation algorithm允许您通过提供名为ValidationMessages的资源包来自定义消息。在包含classpath中创建一个ValidationMessages.properties文件:

javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE 
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE 

这改变了默认消息为@Size约束,所以你应该使用@Size约束,而不是Hibernate的特定@Length约束。

除了更改所有约束的默认消息,您可以更改特定约束实例的消息。设置message属性上的约束:

@NotNull(message = "{email.notnull}") 
private String email; 

和消息添加到ValidationMessages.properties文件:

email.notnull=E-mail address is required 
0

By Spring我假设你的意思是Spring MVC。

从下面的参考 http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

在这里你去 -

您创建一个验证器类 -

public class UserValidator implements Validator { 

    public boolean supports(Class candidate) { 
     return User.class.isAssignableFrom(candidate); 
    } 

    public void validate(Object obj, Errors errors) { 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "required", "Field is required."); 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "required", "Field is required."); 
    } 
} 

在你在上面领域所需的任何验证文本把。

在JSP中,你将需要以下标签 -

<tr> 
    <td>First Name:</td> 
    <td><form:input path="firstName" /></td> 
    <!-- Show errors for firstName field --> 
    <td><form:errors path="firstName" /></td> 
</tr> 

这样的firstName任何验证错误将被打印出来。

+0

我用注释验证像@NotNull。那么在哪里存储消息在Spring jar?我认为我需要编辑他们 – 2011-01-26 14:27:19

+0

@ apache-fan我投下你的答案,因为OP说关于现代JSR303风格的验证,而不是关于旧的春天特定。 – 2011-10-05 17:41:45