@RequestBody @Valid List 无法校验的问题处理

@RequestBody @Valid List 无法校验的问题处理

参考文档:https://blog.csdn.net/wangjiangongchn/article/details/86481729

我的代码(注意注释描述)


package com.glx.controller.SwaggerController;

import com.glx.model.Person;
import com.glx.model.PersonList;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author:glx
 * @Date:2020/12/22
 * @Content:
 */


@Api(tags= "用户操作接口")
@RestController
public class ApiTest1 {

    @RequestMapping(value="/pushMultiPerson",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    @ApiOperation(value = "上传人员资料(多笔)",notes = "上传人员资料(多笔)")
    public void pushMultiPerson(@RequestBody @Valid List<Person> person){//这里的@Valid没有生效

        System.out.println(person);
    }


    @RequestMapping(value="/pushMultiPerson2",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    @ApiOperation(value = "上传人员资料(多笔)",notes = "上传人员资料(多笔)")
    public void pushMultiPerson2(@RequestBody @Valid PersonList plist){//这里可以生效,将数组包装成一个类的属性

        System.out.println(plist);
    }




    @RequestMapping(value="/pushOnePerson",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    @ApiOperation(value = "上传人员资料(单笔)",notes = "上传人员资料(单笔)")
    public void pushOnePerson(@Valid Person person){//这里的@Valid有效

    }

}

package com.glx.model;

import com.glx.myannotation.FlagValidator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * @Author:glx
 * @Date:2020/12/21
 * @Content:
 */

@Data
@ApiModel(value = "Person", description = "用户信息")
public class Person {

    @NotNull(message = "id不能为空")
    private Integer id;


    @ApiModelProperty(value = "姓名")
    private String strName;

    private Integer age;

    @ApiModelProperty(value = "出生日期",example = "2020-01-01")
    private Date birthDay;

    private Date createDate;

    @FlagValidator(values = "1,2,3,4,5",message = "gender必须是1,2,3,4,5")
    private String gender;

    public Person() {

    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", strName='" + strName + '\'' +
                ", age=" + age +
                ", birthDay=" + birthDay +
                ", createDate=" + createDate +
                ", gender='" + gender + '\'' +
                '}';
    }
}

package com.glx.model;

import lombok.Data;

import javax.validation.Valid;
import java.util.List;

/**
 * @Author:glx
 * @Date:2020/12/22
 * @Content:
 */

@Data
public class PersonList {
    @Valid
    List<Person> personList;

    @Override
    public String toString(){

        String strRet="";
        for(int i=0;i<personList.size();i++){
            strRet +=personList.get(i).toString();
        }
        return strRet;

    }

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值