如果我在JSF页面中有一个泛型bean。就像这样:如何在应用程序开始时将一些托管bean作为默认值启动`genericBean`?
<h:outputLabel value="#{genericBean.content}"/>
和这个bean不是一个管理的bean,即在脸上,配置有只有2托管bean:
<managed-bean>
<managed-bean-name>bean1</managed-bean-name>
<managed-bean-class>mb.Bean1</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>bean2</managed-bean-name>
<managed-bean-class>mb.Bean2</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
,如果这两种豆类有方法的getContent() :
public class Bean1{
public String getContent(){
return "Content of Bean 1";
}
}
和
public class Bean2{
public String getContent(){
return "Content of Bean 2";
}
}
然后我可以与他们的一个改变genericBean:
Bean1 bean1 = new Bean1();
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("genericBean", bean1);
或
Bean2 bean2 = new Bean2();
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("genericBean", bean2);
根据一些业务逻辑。
正如您所看到的,我正在使用genericBean
作为面孔环境中的标签。现在我的问题是:如何在应用程序开始时以bean1
作为默认值启动genericBean
?
谢谢。