3

如何@ApplicationScoped用我自己的副本替换托管 bean FacesContext?我所拥有的只是一个实例FacesContext(我在 JSFUnit 中)。

4

1 回答 1

4

应用程序范围的 bean以托管 bean 名称作为键存储在应用程序映射中。

所以,这应该这样做:

FacesContext.getCurrentInstance().getExternalContext()
    .getApplicationMap().put("managedBeanName", new Bean());

顺便说一句,在 JSF 下更深入地涵盖了 Servlet API,应用程序映射只是ServletContext属性的映射。知道什么时候你只有ServletContext手头的事情很有用。在同一行中,会话映射映射到HttpSession属性,请求映射HttpServletRequest属性。分别将它们用于会话和请求范围的 bean。

于 2011-03-02T21:26:07.170 回答