Expression factory implementation. This class is also used as an EL "service provider". The
JUEL jar file specifies this class as el expression factory implementation in
META-INF/services/javax.el.ExpressionFactory. Calling {@link ExpressionFactory#newInstance()} will then return an instance of this class, configured asdescribed below. If no properties are specified at construction time, properties are read from
- If the file
JAVA_HOME/lib/el.properties exists and if it contains property javax.el.ExpressionFactory whose value is the name of this class, these properties are taken as default properties. - Otherwise, if system property
javax.el.ExpressionFactory is set to the name of this class, the system properties {@link System#getProperties()} are taken as default properties. -
el.properties on your classpath. These properties override the properties from JAVA_HOME/lib/el.properties or {@link System#getProperties()}.
There are also constructors to explicitly pass in an instance of {@link Properties}. Having this, the following properties are read:
-
javax.el.cacheSize - cache size (int, default is 1000) -
javax.el.methodInvocations - allow method invocations as in ${foo.bar(baz)} (boolean, default is false). -
javax.el.nullProperties - resolve null properties as in ${foo[null]} (boolean, default is false). -
javax.el.varArgs - support function/method calls using varargs (boolean, default is false).
@author Christoph Beck