【发布时间】:2017-06-22 23:08:36
【问题描述】:
我正在使用 JSF 2.2,我需要使用 EL 表达式获取托管 bean 的实例。我正在使用以下代码创建托管 bean 的实例(如果尚未创建)。如果 bean 已经创建并且在内存中(任何作用域变量,无论是 session、request 等),它都会返回托管 bean 的该实例而不创建新实例。 我的要求是,如果 bean 尚未创建,那么它应该返回 null 而不是创建新实例。如果它已经创建,那么它应该返回该实例。但是下面的代码,如果它不存在,最终会创建一个。 希望我清楚。
public static MyManagedBean getMyManagedBean () {
MyManagedBean bean = (MyManagedBean ) getFacesContext().getApplication().getExpressionFactory().createValueExpression(getELContext(),
"#{MyManagedBean}",
MyManagedBean .class).getValue(FacesContext.getCurrentInstance().getELContext());
return bean;
}
【问题讨论】:
标签: jsf-2.2