我写了一个PhaseListener,想知道是否可以通过它访问控制器。
答案 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");
// ...