我有一个以下控制器类,它接受请求并处理它。它与下面的代码配合得很好。
@RestController
@RequestMapping("/user/id")
public class UserController {
private final UserName userName;
@Autowired
public UserController(final UserName userName) {
this.userName = Objects.requireNonNull(userName, "Not found");
}
@JsonRequestMapping(method = POST)
public ResponseEntity<UserResponse> validate(
@RequestBody UserRequest UserRequest,
@RequestHeader(required = false) String validation) {
…
}
但是,我想添加一个验证来检查请求大小,以避免发出超大的恶意请求,并在大小超过特定值时拒绝请求。
我尝试过:
import javax.validation.constraints.Size;
…
@RequestBody(@Size(max = 200)) UserRequest UserRequest
但这给了我
Cannot find method 'value'
,我不知道为什么。这是实现我想要的验证的正确方法吗?如果是,我上面缺少什么?
验证对象@Size的问题如果想使用验证,则需要使用@Valid进行注释
@RequestBody(@Valid @RequestBody UserRequest UserRequest)
//in object
@Size(max=200)
private String fieldname;
或者你可以一起去
@Valid @Size(max = 200) @RequestBody UserRequest userRequest)