解决@Valid校验List失败问题

在Java项目中,当需要校验List类型的参数时,直接使用@Valid无法生效。通过创建一个实现了List接口的ValidList类,并在其中包含@Valid注解的List字段,可以实现对List内元素的校验。这种方式避免了额外创建包裹类的麻烦,且参数格式更加简洁。最终的方法定义只需将List替换为ValidList即可。
摘要由CSDN通过智能技术生成

背景

在实际的项目开发中,当参数是List集合方式时,往往我们需要对List集合属性进行校验。

场景1
···
@PostMapping(“/preOrder”)
public Result doSomething(@RequestBody @Valid List list) throws Exception {
return orderService.doSomething(list);
}
···
如果是直接使用@Valid修饰这样的方式校验的话,经过测试,@Valid是无法发挥作用的。
场景2
···
@PostMapping(“/preOrder”)
public Result doSomething(@RequestBody @Valid OrderDTOList list) throws Exception {
return orderService.doSomething(list);
}
···
···
@Data public class OrderDTOList() {
@Valid private List orderDTOList;
}
···
这种情况是情况1的进阶,这样设计至少@Valid能够发挥作用了。但是太麻烦,需要专门写一个OrderDTOList类,简直不优雅。同时外接的JSON需要需要多套一层,如下:
···
{
    “orderDTOList”:[
        {
            “userId”:“1”,
            “productCode”:“A102”,
   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值