我正在开发一个实用程序类,使用它我们需要调用在 EL 表达式中定义的托管 bean 方法。是否有任何示例,例如如何使用 EL 表达式调用托管 bean 方法。
这里我不知道托管bean的类型。但我知道 EL 表达式。所以我不能将类型转换为特定的托管 bean。
表达式为:#{phaseListenerBean.compListener}
我的代码如何调用该compListener
方法phaseListenerBean
?我的实用程序类。它在 Jar 文件中可用。
`public void beforePhase(PhaseEvent event) { if(PhaseId.RENDER_RESPONSE.equals(event.getPhaseId())){ SystemListLoaderHelper.populateSelectOneValidValues();
SystemListLoaderHelper.populateSelectManyCheckboxValidValues();
FacesContext context = FacesContext.getCurrentInstance();
ExpressionFactory factory =context.getApplication().getExpressionFactory();
MethodExpression methodExpression = factory.createMethodExpression(
context.getELContext(), "#{phaseListenerBean.callModuleSpecificServiceCalls}",
Void.class.getClass(), null);
methodExpression.invoke(context.getELContext(), null);
// callModuleSpecificServiceCalls(); } }`