wordpress 不能上传seo怎么优化一个网站
news/
2025/9/28 23:11:23/
文章来源:
wordpress 不能上传,seo怎么优化一个网站,网站建设培训简报,南通市优普网站建设摘要#xff1a;开发中经常需要校验用户提交的值是否满足要求#xff0c;Valid可用于方法参数、返回值等的验证#xff0c;但是对于参数为列表时无效#xff0c;此处记录几种对列表进行验证的方法 Valid 注解通常用于验证单个对象的字段#xff0c;而不是整个列表。仅添加…摘要开发中经常需要校验用户提交的值是否满足要求Valid可用于方法参数、返回值等的验证但是对于参数为列表时无效此处记录几种对列表进行验证的方法 Valid 注解通常用于验证单个对象的字段而不是整个列表。仅添加Valid注解不适用List原因Valid注解适用于Java Bean上的验证原生的List位于Java Util 并不属于Java Bean 所以验证器Valid不生效。 当需要对列表中的每个对象进行验证时通常可使用如下途径实现
1. 手动校验 通过手动验证可以自己定制复杂的校验逻辑但处理的数据多的时候工作量非常大。下例中遍历列表对其中的元素逐个手动校验价格和库存。
ApiOperation(后台批量更新商品)
PostMapping(/admin/product/batchUpdate)
public ApiRestResponse batchUpdateProduct(Valid RequestBody ListUpdateProductReq updateProductReqList) {for (int i 0; i updateProductReqList.size() ; i) {UpdateProductReq updateProductReq updateProductReqList.get(i);// 方法一 手动校验if (updateProductReq.getPrice() 1) {throw new ImoocMallException(ImoocMallExceptionEnum.PRICE_TO_LOW);}if (updateProductReq.getStock() 10000) {throw new ImoocMallException(ImoocMallExceptionEnum.STOCK_TO_MANY);}Product product new Product();BeanUtils.copyProperties(updateProductReq, product);productService.update(product);}return ApiRestResponse.success();
}2. 自定义列表 自定义列表自身具有将列表中属性验证的能力例如下例中的ValidList其仅仅是对List的接口简单封装了层。 ValidList类实现了 List 接口并在内部包含了一个使用了Valid注解的 List 对象。这个类的作用是具有校验能力的列表可以对其中的元素进行验证在使用ValidList类的时候如果给定的元素类上有相应的校验规则则可以通过Valid注解来触发校验。 除了包含校验能力的列表属性外ValidList 类还实现了List接口中的所有方法这些方法会直接调用内部的 list 对象的对应方法来完成相应的操作。这意味着可以像使用普通列表一样使用ValidList同时也能够享受到对元素的校验功能。 总之ValidList 类的设计在需要对列表元素进行校验的情况下方便地使用Bean Validation API提供的功能同时也保留了普通列表的所有操作特性。
ApiOperation(后台批量更新商品,validList验证)
PostMapping(/admin/product/batchUpdate2)
public ApiRestResponse batchUpdateProduct2(Valid RequestBody ValidListUpdateProductReq updateProductReqList) {for (int i 0; i updateProductReqList.size() ; i) {UpdateProductReq updateProductReq updateProductReqList.get(i);// 方法二 自定义列表Product product new Product();BeanUtils.copyProperties(updateProductReq, product);productService.update(product);}return ApiRestResponse.success();
}***ValidList.java***
package com.imooc.mall.common;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import javax.validation.Valid;
import java.util.List;/*** 具有检验能力的List*/
public class ValidListE implements ListE {Validprivate ListE list;public ValidList() {this.list new ArrayListE();}public ValidList(ListE list) {this.list list;}public ListE getList() {return list;}public void setList(ListE list) {this.list list;}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);}
}3. 使用Validated 注解 Validated是Spring提供的相对于Valid注解的功能的增强版支持集合内元素验证支持分组验证。
// Controller中添加注解
ValidatedApiOperation(后台批量更新商品,Validated验证)
PostMapping(/admin/product/batchUpdate3)
public ApiRestResponse batchUpdateProduct3(Valid RequestBody ListUpdateProductReq updateProductReqList) {for (int i 0; i updateProductReqList.size() ; i) {UpdateProductReq updateProductReq updateProductReqList.get(i);// 方法三 validatedProduct product new Product();BeanUtils.copyProperties(updateProductReq, product);productService.update(product);}return ApiRestResponse.success();
}使用 Validated所对应抛出的异常需要特殊处理下在全局异常处理类中添加;
ExceptionHandler
ResponseBody
ResponseStatus(HttpStatus.OK)
public ApiRestResponse handle(ConstraintViolationException exception) {// 从exception中获取到所有的验证违规信息并存储在一个Set集合中SetConstraintViolation? violations exception.getConstraintViolations();// 创建一个StringBuilder对象用于构建错误信息的字符串StringBuilder builder new StringBuilder();for (ConstraintViolation? violation: violations) { // 遍历违规信息的集合builder.append(violation.getMessage()); // 将当前违规信息的错误消息追加到builder中break; // 在处理完第一条违规信息后跳出循环} // 传入错误码和错误消息构建一个响应对象并将其作为方法的返回值return ApiRestResponse.error(ImoocMallExceptionEnum.REQUEST_PARAM_ERROR.getCode(), builder.toString());
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921245.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!