Java 验证路径变量大小
我找到了如何验证path变量的示例:Java 验证路径变量大小,java,spring,spring-boot,validation,spring-validator,Java,Spring,Spring Boot,Validation,Spring Validator,我找到了如何验证path变量的示例: @PostMapping(value=“/payment/{unique\u transaction\u id}”) public ResponseEntity handleWpfMessage(@PathVariable(“unique_transaction_id”)@Valid@Max(32)String unique_transaction_id)引发异常{ 我可以为字符串@Max(32)添加@Valid限制吗?或者我必须在类级别添加@Valida
@PostMapping(value=“/payment/{unique\u transaction\u id}”)
public ResponseEntity handleWpfMessage(@PathVariable(“unique_transaction_id”)@Valid@Max(32)String unique_transaction_id)引发异常{
我可以为字符串
@Max(32)
添加@Valid
限制吗?或者我必须在类级别添加@Validated
,如教程所示?您可以为path变量定义正则表达式
@PostMapping(value=“/payment/{unique\u transaction\u id:[a-zA-Z0-9]{0,32}”)
但是我应该在类级别添加@Valid吗?不,不需要,@Valid
验证您的请求主体POJO类中定义的所有约束。是否有其他方法使用注释应用[a-zA-Z0-9]限制?我不认为(或者我不知道)存在用于相同目的的任何批注。还有其他方法,如在筛选器/拦截器中验证它,但它不像上面的解决方案那样简单。这可能是spring中出于相同目的而进行的增强,在@PathVariable
批注中添加字段regex。
@PostMapping(value = "/payment/{unique_transaction_id}")
public ResponseEntity<StringResponseDTO> handleWpfMessage(@PathVariable("unique_transaction_id") @Valid @Max(32) String unique_transaction_id) throws Exception {