Spring Boot验证注释@Valid和@NotBlank不起作用

您所在的位置:网站首页 没有NotBlack Spring Boot验证注释@Valid和@NotBlank不起作用

Spring Boot验证注释@Valid和@NotBlank不起作用

2023-03-28 12:55| 来源: 网络整理| 查看: 265

文章描述:Spring Boot验证注释@Valid和@NotBlank不起作用

本文介绍了Spring Boot验证注释@Valid和@otBlank不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面给出的是我的主控制器,我正在从中调用getPDFDetail方法。

@RequestMapping(value=PATH_PRIT_COTRACTS, method=RequestMethod.POST) public ResponseEntity printContracts(@RequestBody final UpdatePrintContracts updatePrintContracts) throws Exception { System.out.println("contracts value is "+ updatePrintContracts); Integer cancellationReasons = service.getPDFDetails(updatePrintContracts); System.out.println("success!"); return ResponseEntity.ok(cancellationReasons); }

下面是UpdatePrintContracts类,我在其中定义了带有验证批注和相应的getter/setter方法的所有变量。

public class UpdatePrintContracts { @Valid @otBlank @Pattern(regexp = "\p{Alnum}{1,30}") String isReprint; @Valid @otBlank Integer dealerId; @Valid @otBlank @Pattern(regexp = "\p{Alnum}{1,30}") String includeSignatureCoordinates; @Valid @otBlank java.util.List contractumbers; public String getIsReprint() { return isReprint; } public void setIsReprint(String isReprint) { this.isReprint = isReprint; } public Integer getDealerId() { return dealerId; } public void setDealerId(Integer dealerId) { this.dealerId = dealerId; } public String getIncludeSignatureCoordinates() { return includeSignatureCoordinates; } public void setIncludeSignatureCoordinates(String includeSignatureCoordinates) { this.includeSignatureCoordinates = includeSignatureCoordinates; } public java.util.List getContractumbers() { return contractumbers; } public void setContractumbers(java.util.List contractumbers) { this.contractumbers = contractumbers; } }

我尝试将该应用程序作为一个Spring Boot应用程序运行,方法是右键单击项目(运行方式),并通过SOAPUI为变量isReprint和includdeSignatureAssociates传递空值。然而,验证似乎不起作用,并且没有在SOAPUI中抛出任何验证错误。我遗漏了什么?如有任何帮助,我们将不胜感激!

推荐答案

首先,您不需要在UpdatePrintContracts中为那些类变量添加@Valid注释。您可以删除它们。

要触发@控制器输入的验证,只需将输入参数注释为@Valid或@Valiated:

@RequestMapping(value=PATH_PRIT_COTRACTS, method=RequestMethod.POST) public ResponseEntity printContracts(@Valid @RequestBody final UpdatePrintContracts updatePrintContracts) throws Exception {

Refer here,以全面了解验证Spring Boot中的型号。

如果要检查字符串是否只包含特定字符,则必须添加锚点(^表示字符串的开头,$表示字符串的结尾),以确保您的模式与所有字符串匹配。花括号仅用于写入数量,

@Pattern(regexp = "^[\p{Alnum}]{1,32}$")

最后,我假设您的类路径中有以下JAR,

.valify-api.jar(包含抽象API和注释扫描程序)

.hibernate-validator.jar(包含具体实现)

这篇关于Spring Boot验证注释@Valid和@otBlank不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

发布时间:2023-03-12 21:39:56

本文链接:https://www.cdbsd.net/jiaoben/92379bbd66f31642e109f3ff1f63392c.html

文章版权声明:除非注明,否则均为贝斯达系统下载网 原创文章,转载或复制请以超链接形式并注明出处。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3