在JEE6中,JSP中的EL表達式支持帶參數的方法調用了。可以像這樣調用:
${foo.bar(baz)} 。
最新的實現是JUEL,大家可以下載試用一下。下面代碼就是測試如何使用:
// the ExpressionFactory implementation is de.odysseus.el.ExpressionFactoryImpl|
System.setProperty("javax.el.methodInvocations", "true");
ExpressionFactory factory = new de.odysseus.el.ExpressionFactoryImpl (System.getProperties());
// package de.odysseus.el.util provides a ready-to-use subclass of ELContext
de.odysseus.el.util.SimpleContext context = new de.odysseus.el.util.SimpleContext ();
07.
// set value for top-level property "foo" to String value "bar"
factory.createValueExpression(context, "${foo}", String.class).setValue(context, "bar");
// create an expression
ValueExpression e = factory.createValueExpression(context, "${foo.toUpperCase()}", String.class);
// evaluate
System.out.println(e.getValue(context)); // --> BAR