我有一个POST端点,可以将传入的请求正文加载到用户模型中:
@PostMapping(path = "/users")
@ResponseStatus(HttpStatus.CREATED)
public Callable<String> createUser(
@RequestBody User user,
@MyCustomMapping("birthDate") LocalDate birthDate) {
return () -> {
return birthDate; // Just for testing
};
}
从自定义注释 MyCustomMapping 中可以看到,我还想从请求正文的 birthDate 参数中仅加载'birthDate'字段。
要解析参数值,我在Web-mvc参数解析器列表中添加了 HandlerMethodArgumentResolver 的此实现:
public class MyCustomArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.hasParameterAnnotation(MyCustomMapping.class);
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
// Extract the field value from request body and return
}
}
我无法从请求正文中提取值。
有人可以帮忙吗?