数据校验

一个应用程序的健壮性很大程度是取决于输入数据的验证是否完善。

TCSF中数据校验是采用实现JSR303的Hibernate Validator和Spring MVC进行结合。

在Spring MVC控制器方法定义form对象为方法参数,并加入参数注解,在其后追加参数BindingResult,如下:

@ResponseBody
@RequestMapping(value = "create", method = RequestMethod.POST)
public ApiResponseEntity create(@Valid StudentForm form, BindingResult result) {
    ValidationUtil.validate(result);
    this.getService().create(form);
    return ApiResponseEntity.buildOK();
}

当请求参数绑定到from对象后,hibernate validator将会对form对象进行数据校验,校验结果会存储在result对象中,在方法体内使用ValidationUtil.validate方法对校验结果进行处理。如果校验失败,validate方法将会抛出一个ValidationException的运行时异常,开发者无需try catch处理,因为TCSF定义了统一的异常处理,当发生校验异常将会向客户端响应如下JSON内容:

{
    "code" : "ILLEGAL_ARGUMENT",
    "message" : "姓名不能为空"
}

如果开发者需要特别处理,也可以try catch自己进行编码。

目前仅支持对于参数绑定对象的校验,如果是类似于String、Boolean和Integer等控制器方法参数,需要开发者自行进行验证判断:

@ResponseBody
@RequestMapping(value = "create", method = RequestMethod.POST)
public ApiResponseEntity create(@RequestParam(required = true) String name) {
    if(StringUtil.isBlank(name)) {
        return ApiResponseEntity.buildIllegalArgument("姓名不能为空");
    }
    this.getService().create(name);
    return ApiResponseEntity.buildOK();
}

 

转载于:https://my.oschina.net/souljava/blog/895817

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值