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