@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;
}
}