通过PhaseListener访问控制器

时间:2011-09-20 11:36:21

标签: java jsf-2

我写了一个PhaseListener,想知道是否可以通过它访问控制器。

1 个答案:

答案 0 :(得分:1)

您可以Application#evaluateExpressionGet()以编程方式评估EL表达式。用以下方便的方法包装:

@SuppressWarnings("unchecked")
public static <T> T findBean(String beanName) {
    FacesContext context = FacesContext.getCurrentInstance();
    return (T) context.getApplication().evaluateExpressionGet(context, "#{" + beanName + "}", Object.class);
}

在JSF代码中使用它,如下所示:

MyBackingBean myManagedBean = JSF.findBean("myManagedBeanName");
// ...