Java 创建对象时将状态返回到Angular

Java 创建对象时将状态返回到Angular,java,spring,Java,Spring,在我的应用程序中,用户可以将电影标题添加到他们的观看列表中。在我的组件中,我有以下功能: createMovie(movie: Movie): void { this._dataService.createMovie<Movie>({'name': 'Star Wars', 'id': 111, 'description': 'A war in the Stars'}) .subscribe((data) => this.movies.push(data), err

在我的应用程序中,用户可以将电影标题添加到他们的观看列表中。在我的组件中,我有以下功能:

createMovie(movie: Movie): void {
  this._dataService.createMovie<Movie>({'name': 'Star Wars', 'id': 111, 'description': 'A war in the Stars'})
  .subscribe((data) => this.movies.push(data),
  error => () => {
      'something went wrong';
  },
  () => {
      // console.log(this.movies);
  });
}
以及movieService中的createMovie函数:

@Override 
public Movie createMovie(Movie movie) {

    movieRepository.save(movie);

    User current_user = userService.getUser();
    current_user.addMovie(movie);
    userRepository.save(current_user);

    return movie;
}
这一切都很好,但我想在电影成功添加到列表(数据库)时向angular应用程序返回一条消息。我想我应该使用它,但我不确定如何将电影对象和状态文本返回给angular应用程序


例如,添加电影时,我希望从后端返回消息“movie.name已成功添加到您的观察列表”

要在对象旁边返回消息,可以定义一个新类,如

public class RestResponse<T>{

    private String message;
    private T obj;

    public RestResponse(String message, T obj){
    this.message = message;
    this.obj = obj;
    }

}
公共类重新响应{
私有字符串消息;
私人T obj;
公共重新响应(字符串消息,T obj){
this.message=消息;
this.obj=obj;
}
}
然后在Rest控制器中可以执行以下操作

Movie result =  movieService.createMovie(movie);

return new RestResponse<Movie>(String.format("%s was added to your watchlist", movie.name ), result);
Movie result=movieService.createMovie(电影);
返回新的重新响应(String.format(“%s已添加到您的监视列表”,movie.name),结果);

要在对象旁边返回消息,可以定义一个新类,如

public class RestResponse<T>{

    private String message;
    private T obj;

    public RestResponse(String message, T obj){
    this.message = message;
    this.obj = obj;
    }

}
公共类重新响应{
私有字符串消息;
私人T obj;
公共重新响应(字符串消息,T obj){
this.message=消息;
this.obj=obj;
}
}
然后在Rest控制器中可以执行以下操作

Movie result =  movieService.createMovie(movie);

return new RestResponse<Movie>(String.format("%s was added to your watchlist", movie.name ), result);
Movie result=movieService.createMovie(电影);
返回新的重新响应(String.format(“%s已添加到您的监视列表”,movie.name),结果);

如果您询问http状态代码,那么您可以使用factory
ResponseEntity.ok(movieService.createMovie(movie))
并且您的方法返回类型将是
public ResponseEntity createMovie(@RequestBody movie)
,对于不同的Http状态类型,
ResponseEntity
中还有其他工厂方法<代码>响应性。好的将返回状态代码200Hm。我不认为这是我正在考虑的。也许我应该说是反应体而不是反应状态。如何返回带有消息的响应正文
Movie.name已添加到您的监视列表中
。如果您询问http状态代码,则可以使用工厂
ResponseEntity.ok(movieService.createMovie(Movie))
,并且您的方法返回类型将是
public ResponseEntity createMovie(@RequestBody Movie)
,对于不同的Http状态类型,
ResponseEntity
中还有其他工厂方法<代码>响应性。好的将返回状态代码200Hm。我不认为这是我正在考虑的。也许我应该说是反应体而不是反应状态。如何返回带有消息的响应正文
Movie.name已添加到您的观察列表中
。感谢您为我指明了正确的方向:)。一个提示,您应该添加getter/setter。我犯了一个错误,这个问题帮了我的忙>:)@PeterBoomsma抱歉,是的,为了简洁起见,我省略了getter/setter。虽然json序列化程序可以访问私有字段,但却为我指明了正确的方向:)。一个提示,您应该添加getter/setter。我犯了一个错误,这个问题帮了我的忙>:)@PeterBoomsma抱歉,是的,为了简洁起见,我省略了getter/setter。尽管json序列化程序可以访问私有字段