0
私は、指定された名前のユーザーがいない場合、404 NOT FOUNDを返すコントローラを持っています。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);
}
は、その後、私は
@ControllerAdvice
public class ExceptionHandlerController {
@ExceptionHandler(NoHandlerFoundException.class)
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public ModelAndView handleNotFound(NoHandlerFoundException e) {
return new ModelAndView("redirect:/signIn");
}
}
この例外を処理することができるようになりますコントローラを作成したが、それは効果がありません。コントローラーは、デフォルトの404エラーページを返します。私のコントローラには反応しません。
編集:私はspring.mvc.throw-exception-if-no-handler-found = true
を設定しましたが、それも助けになりませんでした。私はSpring Bootを使用しています。
私はそれを処理し、自分のページを変更できますか? –
あなたのコードによれば、あなたのコントローラーはAPIから来ていると思われ、200または404のいずれかを返します。例外ハンドラを動作させるには、代わりに新しいNoHandlerFoundException()をスローするか、NOT_FOUNDを返します。 –