Validation的实践之控制层校验

2018-04-27  本文已影响0人  何何与呵呵呵

利用validation完成对控制层的VO类进行校验

这里利用springboot进行开发,@Configuration相当于之前的xml配置文件与,@Bean表示之前的一个bean类.

public class BaseVO implements Serializable {

private static final long serialVersionUID = -7265112497823460621L;

// 令牌
@NotNull(message="商家登录超时,或在其它设备登录!")
String token;

public String getToken() {
    return token;
}

public void setToken(String token) {
    this.token = token;
}

@Override
public String toString() {
    return ReflectionToStringBuilder.toString(this);
}
}

这里简单创建一个VO类,在token的上面使用@notnull注解,并给message赋值.

将validate方法放入BaseController中,当然,这里的validator是注入进来的,代码省略了.项目在启动的时候,会校验token是否为空,当发现token为空时,set集合便有值,然后抛出异常.这时候需要定义一个全局异常.这样就可以了.

@ControllerAdvice
public class CommExceptionHandle {

@ExceptionHandler(value = Exception.class)
@ResponseBody
public Map<String, Object> handle(Exception e) {
    Map<String, Object> map = new HashMap<String, Object>();
    if (e instanceof ValidateException) {
        
        map.put("status", BusinessErrorCode.PARAMS_EXCEPTION.getCode());
        map.put("remark", e.getMessage());
        return ResponseData.takeResponseData(map);
    }else {
        map.put("status", BusinessErrorCode.SYSTEM_ERROR.getCode());
        map.put("remark", BusinessErrorCode.SYSTEM_ERROR.getDesc());
        return ResponseData.takeResponseData(map);
    }
    
  }
}
上一篇 下一篇

猜你喜欢

热点阅读