当前位置: 首页 > news >正文

郑州网站建设目标深圳企业网站制作流程

郑州网站建设目标,深圳企业网站制作流程,企业所得税优惠政策最新2022文件,设计网站公司咨询亿企邦背景#xff1a; 我们的接口是一个List对象#xff0c;对象里面的数据基本都有一些基础数据校验的注解#xff0c;我们怎么样才能校验这些基础规则呢#xff1f; 我们在导入excel文件进行数据录入的时候#xff0c;数据录入也有基础的校验规则#xff0c;这个时候我们又…背景 我们的接口是一个List对象对象里面的数据基本都有一些基础数据校验的注解我们怎么样才能校验这些基础规则呢 我们在导入excel文件进行数据录入的时候数据录入也有基础的校验规则这个时候我们又该如何少写代码让Validation框架来帮我们完成这些基础校验呢 带着这个疑问喊一句翠花上酸菜。 正文 首先定义我们的Validation的基础类基础类只有一个字段errMsg用于我们校验不通过时候存储我们的提示信息 Data public class ValidationBaseDTO {private String errMsg; } 然后定义我们的测试对象类搞一个简单的这个DTO集成我们的校验基础类 Data public class ValidationTestDTO extends ValidationBaseDTO {NotEmpty(message 用户名不允许为空)private String userName;NotEmpty(message 用户code不允许为空)private String userCode;private int age;} 然后编写咱们的校验工具类 public class ValidationUtils{public static E, T extends ValidationBaseDTO ListT validate(Validator validator, E e) {return validate(validator, e, Default.class);}public static E, T extends ValidationBaseDTO ListT validate(Validator validator, E e, Class? groupClass) {SetConstraintViolationE set validator.validate(e, groupClass);if (CollectionUtils.isEmpty(set)) {return null;}MapString, ListConstraintViolationE resultGroup set.stream().collect(Collectors.groupingBy(item - item.getPropertyPath().toString().substring(0, item.getPropertyPath().toString().indexOf(.))));return resultGroup.entrySet().stream().map(item - {T targetObject (T)item.getValue().get(0).getLeafBean();String errMsg String.join(|, item.getValue().stream().map(ConstraintViolationE::getMessage).collect(Collectors.toList()));targetObject.setErrMsg(errMsg);return targetObject;}).collect(Collectors.toList());}} 校验工具类有了那还得搞一个测试用的Controller Slf4j RestController RequestMapping(value validation) AllArgsConstructor public class ValidationTestController {private final Validator validator;RequestMapping(value validationTest)public CommonResultListValidationTestDTO validationTest() {// 例如我们通过Excel导入的数据有两条属性全为空ValidationTestDTO validationTestDTO1 new ValidationTestDTO();ValidationTestDTO validationTestDTO2 new ValidationTestDTO();ListValidationTestDTO validationTestDTOList new ArrayList();validationTestDTOList.add(validationTestDTO1);validationTestDTOList.add(validationTestDTO2);// 校验结果如果为空则说明全部通过如果不为空则说明有的校验没有通过ListValidationTestDTO resultList ValidationUtils.validate(validator, new ValidatedList(validationTestDTOList));return ResultUtil.success(resultList);} } 这里不得不提的就是Validator 在Spring框架里面是有被实例化的且由Sping框架管理我们直接注入就可以了 差点忘了如果需要校验List我们还需要自定义一个ValidationList类如下 public class ValidatedListE implements ListE, Serializable {public ValidatedList(ListE eList){this.list eList;}Validprivate ListE list new LinkedList();Overridepublic int size() {return list.size();}Overridepublic boolean isEmpty() {return list.isEmpty();}Overridepublic boolean contains(Object o) {return list.contains(o);}Overridepublic IteratorE iterator() {return list.iterator();}Overridepublic Object[] toArray() {return list.toArray();}Overridepublic T T[] toArray(T[] a) {return list.toArray(a);}Overridepublic boolean add(E e) {return list.add(e);}Overridepublic boolean remove(Object o) {return list.remove(o);}Overridepublic boolean containsAll(Collection? c) {return list.containsAll(c);}Overridepublic boolean addAll(Collection? extends E c) {return list.addAll(c);}Overridepublic boolean addAll(int index, Collection? extends E c) {return list.addAll(index, c);}Overridepublic boolean removeAll(Collection? c) {return list.removeAll(c);}Overridepublic boolean retainAll(Collection? c) {return list.retainAll(c);}Overridepublic void clear() {list.clear();}Overridepublic E get(int index) {return list.get(index);}Overridepublic E set(int index, E element) {return list.set(index, element);}Overridepublic void add(int index, E element) {list.add(index, element);}Overridepublic E remove(int index) {return list.remove(index);}Overridepublic int indexOf(Object o) {return list.indexOf(o);}Overridepublic int lastIndexOf(Object o) {return list.lastIndexOf(o);}Overridepublic ListIteratorE listIterator() {return list.listIterator();}Overridepublic ListIteratorE listIterator(int index) {return list.listIterator(index);}Overridepublic ListE subList(int fromIndex, int toIndex) {return list.subList(fromIndex, toIndex);} } 如果这个类不定义直接传入我们请求参数的List那是无效的 启动看效果 添加图片注释不超过 140 字可选
http://www.hkea.cn/news/14570959/

相关文章:

  • 南通网站建设空间wordpress怎样建立多站点
  • 公司网站建设找谁后端开发和前端开发的区别
  • 如何提高网站排名的方法违法的网址能注册做一网站用吗
  • 贵州建设厅网站政务大厅网站title标签内容怎么设置
  • 博客类网站模板企业微信手机片网站制作
  • 深圳建站软件小区住宅可以注册公司吗
  • 微信网站建设开发嵌入式累还是程序员累
  • google网站推广重庆建设信息
  • 模板网站可以优化吗江苏省网架公司
  • 南京做网站优化公司网页设计学校网站
  • 温州微网站公司wordpress分栏
  • 站长之家查询工具c网站开发案例详解 pdf
  • 河北网站备案 多长时间通过广州正规网站制作公司
  • 上海企业网站扬州广陵城乡建设局网站
  • 做网站建设公司网易互客传统网站建设团队
  • 医疗网站是否全部需要前置备案合肥工程建设交易中心网站
  • 企业网站建立答辩问题wordpress newsplus
  • 做视频解析网站要什么服务器潍坊市住房和城乡建设局网站下载
  • 大型网站建设洛阳网站制作wordpress 侧边菜单 企业主题
  • 建设规范文件在哪个网站发布chrome网站开发插件
  • 网站建设业务员提成公司网络推广的作用
  • 自己网站怎么做优化平台网站做代理商
  • 西宁电商网站建设企业网站备案意义
  • 百度做公司网站本地企业网站建设服务
  • 网站设计 案例浙江乐清新闻今天
  • 大连网络备案做网站工信部 网站备案
  • 免费注册qq号网站公司网站门户建设包括哪些
  • 舞蹈培训机构网站建设简单的网站开发的软件
  • 提升网站知名度沪尚茗居官网上海
  • 网站开发的英文书有什么网站推广的方式有哪些?