1.pom.xm添加依賴
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.7</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.7</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.7</version> </dependency>
2.配置文件.xml
<!-- 校驗參數 --> <bean id="commonProvider.messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basenames"> <list> <value>classpath:message/message</value> <value>classpath:org/hibernate/validator/ValidationMessages</value> </list> </property> <!--默認為false,這樣當Spring在ResourceBundle中找不到messageKey的話,就拋出NoSuchMessageException, 把它設置為True,則找不到不會拋出異常,而是使用messageKey作為返回值。--> <property name="useCodeAsDefaultMessage" value="false"/> <property name="defaultEncoding" value="UTF-8"/> <property name="cacheSeconds" value="600"/> </bean> <bean id="commonProvider.validatorFactory" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <property name="validationMessageSource" ref="commonProvider.messageSource"/> </bean> <bean id="commonProvider.validator" factory-bean="commonProvider.validatorFactory" factory-method="getValidator"/> <!-- 參數校驗 --> <bean id="commonProvider.paramCheckLogic" class="com.jd.m.cms.bjshare.common.handler.logic.ParamCheckLogic"> <property name="messageSource" ref="commonProvider.messageSource" /> <property name="validator" ref="commonProvider.validator" /> </bean>
3.對象.java
public class test {
@NotNull(message = "測試id不能為空", groups = { First.class })
private String id;
@NotNull(message = "測試name不能為空", groups = { Second.class })
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public test(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public test(String id, String name) {
this.id = id;
this.name = name;
}
public interface First {
}
public interface Second {
}
4.調用
1).
public <T> T checkObjParamValidate(@NotNull T t, Class<?>... groups) {
2).
.checkObjParamValidate(test,com.jd.bjshare.domain.test.First.class,com.jd.bjshare.domain.test.Second.class);
3).
validator.validate(t, groups);
5.頁面返回結果
{"code":1,"msg":"測試id不能為空,測試name不能為空","data":{}}