@ManagedProperty 和 FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("bean") 之间的区别

Difference between @ManagedProperty and FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("bean")

有什么区别:

public class GameController implements Serializable{

@ManagedProperty(value="#{Gamebean}")
private Game game;

public class GameController implements Serializable{

private Game game;

public GameController(){
game =(Game)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("Gamebean");
}

如果没有区别,哪种方法更好? 干杯。

如果 bean 不存在,@ManagedProperty 方法将自动创建它。 getSessionMap() 方法不会,因此可能 return null 如果 bean 不是事先(自动)创建的。

以最少的努力和关注实现相同的代码更好。