Angular 和Spring休息不良路径

ymdaylpp  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(199)

当我输入unexist/bad id of movie get(例如/movies/asd)时,我只看到没有后端属性的html(清除frontend而没有值)。spring(在控制台中)的错误是404,它很好,后端工作正常,但是如何处理这个异常,不显示前端,只需重定向到home或show404站点。
spring(在这种情况下,服务抛出illegalargumentexception):

  1. @GetMapping
  2. ResponseEntity<List<MovieReadModel>> getAllMovies() {
  3. logger.warn("Exposing all the movies!");
  4. return ResponseEntity.ok(service.readAllMovies());
  5. @ExceptionHandler(IllegalArgumentException.class)
  6. ResponseEntity<String> handleIllegalArgument(IllegalArgumentException e) {
  7. return ResponseEntity.notFound().build();
  8. }
  9. @ExceptionHandler(IllegalStateException.class)
  10. ResponseEntity<String> handleIllegalState(IllegalStateException e) {
  11. return ResponseEntity.badRequest().body(e.getMessage());
  12. }
  13. }

Angular :

  1. export class MovieDetailsComponent implements OnInit {
  2. currentMovie: Movie = {
  3. title: '',
  4. description: '',
  5. director: '',
  6. producer: '',
  7. category: '',
  8. actors: ['']
  9. };
  10. constructor(
  11. private movieService: MovieService,
  12. private route: ActivatedRoute
  13. ) { }
  14. ngOnInit(): void {
  15. this.getMovie(this.route.snapshot.params.id)
  16. }
  17. getMovie(id: string): void {
  18. this.movieService.get(id)
  19. .subscribe(
  20. data => {
  21. this.currentMovie = data;
  22. console.log(data);
  23. },
  24. error => {
  25. console.log(error);
  26. });
  27. }
  28. }

路由:

  1. const routes: Routes = [
  2. { path: 'movies', component: MoviesListComponent},
  3. { path: 'movies/:id', component: MovieDetailsComponent},
  4. { path: 'add', component: AddMovieComponent},
  5. { path: 'profile', component: ProfileComponent },
  6. { path: 'register', component: RegisterComponent },
  7. { path: 'login', component: LoginComponent },
  8. { path: 'user', component: BoardUserComponent },
  9. { path: 'admin', component: BoardAdminComponent },
  10. { path: '', redirectTo: 'movies', pathMatch: 'full' }
  11. ];

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题