1.demo
package com.paper;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 创建问卷的vo
* <p>Date: Created in 19:39 2020/10/26</p>
*
* @author hecanrong
*/
@Getter
@Setter
@ToString
public class PaperCreateVo implements Serializable {
private String paperId;
// 标题
@NotBlank(message = "[40099]请填写问卷标题")
@Size(max = 200, message = "[40099]标题字数上限为200")
private String title;
// 说明
@NotBlank(message = "[40099]请填写问卷标题说明")
@Size(max = 10000, message = "[40099]问卷说明不能超过10000字符")
private String introduce;
// 问题和选项
// 嵌套加上这三个,不然传值list里面的字段验证不到
@Valid
@NotNull(message = "[40099]问题不能为空")
@Size(min = 1, message = "[40099]至少创建一个问题")
private List<QuestionCreateVo> questionCreateVoList = new ArrayList<>();
@Getter
@Setter
@ToString
public static class QuestionCreateVo implements Serializable {
// 标题
@NotBlank(message = "[40099]请填写问卷标题")
@Size(max = 200, message = "[40099]标题字数上限为200")
private String title;
// 类型(1.单项选择 2多项选择 3填空)
@NotNull(message = "[40099]请选择问题的类型")
@Range(min = 1, max = 3, message = "[40099]问题的类型错误")
private Integer type;
// 是否必答(0否 1是)
@NotNull(message = "[40099]请选择是否必答")
@Range(min = 0, max = 1, message = "[40099]是否必答的参数错误")
private Integer needFill;
// 选项
List<String> optionList = new ArrayList<>(8);
}
}
2.测试代码
添加@Valid注解:
@PostMapping({"/save_or_update"})
public Object saveOrUpdatePaper(@Valid PaperCreateVo paperCreateVo
, HttpServletRequest request, HttpSession session) {
return nyll
}
3.测试结果
4.文章参考链接
a. https://blog.csdn.net/qq_27680317/article/details/79970590