在Spring Boot中,@Valid
注解用于触发请求体(requestBody)上定义的验证约束。如果你发现@Valid
注解没有按预期工作,可能是以下几个原因:
@NotNull
, @Size
, @Pattern
等。@Valid
注解应该直接放在方法参数之前,而不是在@RequestBody
注解之前。pom.xml
中添加Hibernate Validator依赖:pom.xml
中添加Hibernate Validator依赖:@ControllerAdvice
或@RestControllerAdvice
类影响了验证行为。以下是一个简单的示例,展示了如何在Spring Boot控制器中使用@Valid
注解:
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@RestController
public class ExampleController {
@PostMapping("/example")
public ResponseEntity<?> exampleMethod(@Valid @RequestBody MyRequestBody requestBody) {
// 处理请求
return ResponseEntity.ok().build();
}
}
class MyRequestBody {
@NotNull(message = "Name cannot be null")
@Size(min = 2, max = 30, message = "Name must be between 2 and 30 characters")
private String name;
// Getters and setters
}
通过以上步骤,你应该能够解决@Valid
注解在Spring Boot控制器方法中不起作用的问题。如果问题仍然存在,可能需要进一步检查日志或使用调试工具来确定具体原因。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云