Posiadam kontroler, który w razie przypadku, gdy nie będzie użytkownika o podanej nazwie, to zwróci 404 NOT FOUND.
@GetMapping(value = "/profile/{username}", produces = MediaType.APPLICATION_JSON_VALUE) public HttpEntity<User> getUsers(@PathVariable("username") String username) { User user = userService.findOneByUsername(username); if(user != null) { return ResponseEntity.ok(user); } return new ResponseEntity<>(HttpStatus.NOT_FOUND); }
Następnie stworzyłem kontroler, który będzie w stanie obsłużyć ten wyjątek
@ControllerAdvice public class ExceptionHandlerController { @ExceptionHandler(NoHandlerFoundException.class) @ResponseStatus(value = HttpStatus.NOT_FOUND) public ModelAndView handleNotFound(NoHandlerFoundException e) { return new ModelAndView("redirect:/signIn"); } }
Jednak nie ma żadnego efektu. Kontroler zwraca mi normalną domyślną stronę błędu 404 Nie reaguje na mój kontroler.
EDIT: Ustawiłem
spring.mvc.throw-exception-if-no-handler-found=true
ale to również nie pomogło.
Używam Spring Boot.
Chcę uzyskać taki efekt jak na stronie https://myanimelist.net/profile/jonkijonki . Podałem zła nazwę użytkownika i pokazało mi spersonalizowaną stronę błędu 404.