Ява Весна | получить содержимое класса Pojo в методе handleMethodArgumentNotValid ⇐ JAVA
-
Anonymous
Ява Весна | получить содержимое класса Pojo в методе handleMethodArgumentNotValid
Мне нужен класс pojo тела запроса в handleMethodArgumentNotValid() в классе GlobalExceptionHandler
мой контроллер
@RestController общественный класс MainController { @RequestMapping (значение = "/createUser", метод = RequestMethod.POST, потребляет = MediaType.APPLICATION_JSON_VALUE, производит = MediaType.APPLICATION_JSON_VALUE) public ResponsePacket createUser (запрос HttpServletRequest, @Valid @RequestBody RequestPacket requestPacket) { ResponsePacket соответственно = новый ResponsePacket(); возврат соответственно; } } Мой класс pojo пакета запроса
публичный класс RequestPacket { @NotNull(message = «Идентификатор пользователя является обязательным») частный строковый идентификатор пользователя; @NotNull(message = «Имя пользователя обязательно») @Pattern(regexp = "^[a-zA-Z0-9 ]*", message = "Имя пользователя не должно содержать специальные символы") частная строка userName; @NotNull(message = «адрес обязателен») частный строковый адрес; публичная строка getUserId() { вернуть идентификатор пользователя; } общественный недействительный setgetUserId (String userId) { this.userId = идентификатор пользователя; } публичная строка getUserName() { вернуть имя пользователя; } public void setUserName (String userName) { this.userName = userName.trim(); } публичная строка getAddress() { обратный адрес; } public void setAddress (строковый адрес) { этот.адрес = адрес; } } мой класс GlobalExceptionHandler
@ControllerAdvice публичный класс GlobalExceptionHandler расширяет ResponseEntityExceptionHandler { // дескриптор ошибки для @Valid @Override защищенный ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex, Заголовки HttpHeaders, статус HttpStatus, запрос WebRequest) { Map body = new LinkedHashMap(); body.put("статус", "сбой"); body.put("userId", ""); // здесь мне нужен тот же идентификатор пользователя, который я получил в своем пакете запроса List errorDetails = ex.getBindingResult().getFieldErrors().stream() .map(x -> x.getDefaultMessage()).collect(Collectors.toList()); //Получаем все ошибки body.put("Список ошибок", errorDetails); вернуть новый ResponseEntity(тело, заголовки, HttpStatus.OK); } } Мне нужен тот же идентификатор пользователя, который я получил в своем пакете запроса, в моем методе handleMethodArgumentNotValid. Потому что мне нужно передать тот же идентификатор пользователя в объекте ответа
Мне нужен класс pojo тела запроса в handleMethodArgumentNotValid() в классе GlobalExceptionHandler
мой контроллер
@RestController общественный класс MainController { @RequestMapping (значение = "/createUser", метод = RequestMethod.POST, потребляет = MediaType.APPLICATION_JSON_VALUE, производит = MediaType.APPLICATION_JSON_VALUE) public ResponsePacket createUser (запрос HttpServletRequest, @Valid @RequestBody RequestPacket requestPacket) { ResponsePacket соответственно = новый ResponsePacket(); возврат соответственно; } } Мой класс pojo пакета запроса
публичный класс RequestPacket { @NotNull(message = «Идентификатор пользователя является обязательным») частный строковый идентификатор пользователя; @NotNull(message = «Имя пользователя обязательно») @Pattern(regexp = "^[a-zA-Z0-9 ]*", message = "Имя пользователя не должно содержать специальные символы") частная строка userName; @NotNull(message = «адрес обязателен») частный строковый адрес; публичная строка getUserId() { вернуть идентификатор пользователя; } общественный недействительный setgetUserId (String userId) { this.userId = идентификатор пользователя; } публичная строка getUserName() { вернуть имя пользователя; } public void setUserName (String userName) { this.userName = userName.trim(); } публичная строка getAddress() { обратный адрес; } public void setAddress (строковый адрес) { этот.адрес = адрес; } } мой класс GlobalExceptionHandler
@ControllerAdvice публичный класс GlobalExceptionHandler расширяет ResponseEntityExceptionHandler { // дескриптор ошибки для @Valid @Override защищенный ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex, Заголовки HttpHeaders, статус HttpStatus, запрос WebRequest) { Map body = new LinkedHashMap(); body.put("статус", "сбой"); body.put("userId", ""); // здесь мне нужен тот же идентификатор пользователя, который я получил в своем пакете запроса List errorDetails = ex.getBindingResult().getFieldErrors().stream() .map(x -> x.getDefaultMessage()).collect(Collectors.toList()); //Получаем все ошибки body.put("Список ошибок", errorDetails); вернуть новый ResponseEntity(тело, заголовки, HttpStatus.OK); } } Мне нужен тот же идентификатор пользователя, который я получил в своем пакете запроса, в моем методе handleMethodArgumentNotValid. Потому что мне нужно передать тот же идентификатор пользователя в объекте ответа
Мобильная версия