在java工程中,涉及到前后台数据传递时,参数校验是必不可少的。一般情况下,我们会在前台和后台都对数据进行双重校验,以保证数据的准确性。如果参数较少,且规则简单的情况下,我们是还用简单的if判断即可满足条件。但是如果参数特别多的情况下,再使用if判断,代码就会复杂很多。正好之前项目中使用了一种通用的参数校验方式,记录一下,进行分享。
这种通用参数校验方式采用的是JSR303规范,Hibernate validator是JSR303规范的一种很好的实现。参考地址如下:http://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html_single/#validator-usingvalidator-annotate
1、引入依赖
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>
2、创建ValidateResult类,用于存储校验结果
public class ValidateResult {
private boolean result = false; //校验结果
private String[] errMsg; //错误信息
public ValidateResult(boolean result, String[] errMsg) {
this.result = result;
this.errMsg = errMsg;
}
public boolean isSuccess() {
return result;
}
public String[] getErrMsg() {
return errMsg;
}
/**
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "ValidateResult [result=" + result +
", errMsg&#