【发布时间】:2020-05-08 17:33:37
【问题描述】:
我有一个 Spring Boot 应用程序,我需要根据标头值对请求的字段执行一些验证。
所以就像任何其他 Spring Boot 应用程序一样,我的休息控制器中的入口点看起来像
public ResponseEntity<Mono<MyResponse>> myOperation(MyRequest request, String another_parameter)
我的问题是,为了执行我的验证,我正在考虑使用org.springframework.validation.Validator
当你想实现上面的接口时,你必须做这样的事情:
public class WebsiteUserValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return MyRequest.class.equals(clazz);
}
@Override
public void validate(Object obj, Errors errors) {
MyRequest user = (MyRequest) obj;
if (checkInputString(MyRequest.getSomeField())) {
errors.rejectValue("someField", "someField.empty");
}
}
private boolean checkInputString(String input) {
return (input == null || input.trim().length() == 0);
}
}
我想获得validate 方法实现中的标头。
如何做到这一点? (可以随时获取标题)。
【问题讨论】:
标签: java spring spring-boot spring-mvc spring-validator