Я довольно новичок в Spring Framework и пытаюсь учиться, разрабатывая пример проекта
Возможно, это глупый вопрос, но я не могу найти никакой помощи вообще.
Мой контроллер отвечает на запросы экранированной строкой вместо json представления объекта, когда правила проверки не проходят. Я использую валидаторы бина и Gson для генерации ошибки json представление ошибок.
Мой контроллер отвечает:
"{\" firstName \ ": \" firstName требуется \ ", \" lastName \ ": \" lastName требуется \ ", \" password \ ": \" требуется пароль \ ", \" matchPassword \ ": \" требуется соответствующий пароль \ ", \" электронная почта \ ": \ "email required \"} "
Но в консоли Gson печатает правильное json представление
{" firstName ":" firstName required "," lastName ":" lastName обязательно "," пароль ":" пароль требуется "," MatchPassword ":" требуется пароль "," электронная почта ":" требуется электронная почта "}
Вот мой контроллер:
@RequestMapping(value = "/user/registration", method = RequestMethod.POST, headers = "Accept=application/json", produces = {"application/json"})
public ResponseEntity<String> registerUserAccount(@Valid @RequestBody UserDTO accountDto) {
LOGGER.debug("Registering user account with information: {}", accountDto);
User registered = userService.registerNewUserAccount(accountDto);
return new ResponseEntity<>("Success", HttpStatus.OK);
}
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity handleValidationExceptions(MethodArgumentNotValidException ex) {
LOGGER.debug("MethodArgumentNotValidException called");
Map<String, String> errors = new HashMap<>();
ex.getBindingResult().getAllErrors().forEach((error) -> {
String fieldName = ((FieldError) error).getField();
String errorMessage = error.getDefaultMessage();
errors.put(fieldName, errorMessage);
});
Gson gson = new Gson();
LOGGER.debug(gson.toJson(errors));
return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON).body(gson.toJson(errors));
}
Я пробовал множество возможных решений, но ни одно из них не работает, всегда возвращает экранированное строковое представление объекта.
Любая помощь будет принята, я потерял много времени, пытаясь чтобы решить это, и я чувствую, что это что-то дурак, но я не могу двигаться вперед, потому что я даже не могу завершить свой первый контроль er
здесь git проекта , при необходимости