【发布时间】:2018-07-14 20:22:30
【问题描述】:
下面是我调用 getPDFDetails 方法的主控制器。
@RequestMapping(value=PATH_PRINT_CONTRACTS, 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
@NotBlank
@Pattern(regexp = "\\p{Alnum}{1,30}")
String isReprint;
@Valid
@NotBlank
Integer dealerId;
@Valid
@NotBlank
@Pattern(regexp = "\\p{Alnum}{1,30}")
String includeSignatureCoordinates;
@Valid
@NotBlank
java.util.List<Integer> contractNumbers;
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<Integer> getContractNumbers() {
return contractNumbers;
}
public void setContractNumbers(java.util.List<Integer> contractNumbers) {
this.contractNumbers = contractNumbers;
}
}
我正在尝试通过右键单击项目 (Run As) 并通过 Soap 为变量 isReprint 和 includeSignatureCoordinates 传递空白值来将应用程序作为 Spring Boot 应用程序运行用户界面。但是,验证似乎不起作用,并且没有在 Soap UI 中引发任何验证错误。我错过了什么?任何帮助表示赞赏!
【问题讨论】:
-
@NotBlank仅用于文本,而不是整数。尝试从最简单的开始,只有一个字段用于验证,如@NotBlank String foo;,如果可行,则继续使用其他更复杂的字段,如@Pattern -
在我的例子中,我忘记在控制器中添加@Valid 标签
标签: java validation spring-boot soapui