赞
踩
在开发过程经常使用JSR-303相关的注解(@Valid,@Validated,@NotBlank…)等来实现对参数的合法性进行校验,在对单个对象进行校验时只需要在对应的VO中添加相关注解便能实现(这里就不演示了)。在前段时间项目中遇到一个服务调用传输数据的问题,仓库每次进行采购时,向采购服务发送的数据是一个List的集合,集合中是每一个采购材料的基本信息(材料名称,数量…),在采购的过程中有些信息是必须要携带过来的(如材料名称,数量),在controller层接收时就需要给List集合中的每一个元素进行合法校验,(不多说上代码)
@Validated @RestController @RequestMapping("/accept/mes/purchase") public class PurchaseController extends BaseController { private Logger logger = LoggerFactory.getLogger(PurchaseController.class); @Autowired private PurchaseService purchaseService; @PostMapping("/sendPurchase") public AjaxResult sendPurchase(@Valid @RequestBody List<PurchaseVO> vos) { Map<String, String> result = purchaseService.sendPurchase(vos); String code = result.get("code"); String message = result.get("message"); if ("0".equals(code) && "Ixbus has received the message successfully".equals(message)){ return success(); }else{ return error(); } } }
这里需要注意的是在类上需要添加@Validated注解,在方法参数前添加@Valid注解
@Validated public class PurchaseVO implements Serializable { private static final long serialVersionUID = 1L; /** * 采购编码 * 若不是从采购取得物料编码 ,以PCB开头,年月4位数,后5位流水号 */ @NotBlank(message = "采购编码不能为空") private String itemId; /** * 物料名称 */ @NotBlank(message = "物料名称不能为空") private String itemName; /** * ...还有很多,此处省略 */ }
注意在类上添加@Validated注解,完成以上步骤后就可以实现List中每个元素都校验了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。