JEE 6 起,EL 表達式支援帶參數方法調用:${foo.bar(baz)}。參考實作 JUEL(de.odysseus.el.ExpressionFactoryImpl)。
System.setProperty("javax.el.methodInvocations", "true");
ExpressionFactory factory = new de.odysseus.el.ExpressionFactoryImpl(System.getProperties());
de.odysseus.el.util.SimpleContext context = new de.odysseus.el.util.SimpleContext();
factory.createValueExpression(context, "${foo}", String.class).setValue(context, "bar");
ValueExpression e = factory.createValueExpression(context, "${foo.toUpperCase()}", String.class);
System.out.println(e.getValue(context)); // 輸出 BAR
啟用 javax.el.methodInvocations=true 即可在 JSP 頁面中直接調用 Bean 方法,極大增強表達能力。