Class ELManager

java.lang.Object
jakarta.el.ELManager

public class ELManager extends Object
Provides a simplified API for managing EL context, resolvers, functions, and variables. This class maintains a StandardELContext and provides convenience methods for adding resolvers, mapping functions, setting variables, and managing imports. It is used internally by ELProcessor.
Since:
EL 3.0
  • Constructor Details

    • ELManager

      public ELManager()
      Constructs an ELManager with a lazily initialized StandardELContext.
  • Method Details

    • getExpressionFactory

      public static ExpressionFactory getExpressionFactory()
      Returns the ExpressionFactory used to create and evaluate EL expressions. The factory is obtained through the standard service discovery mechanism.
      Returns:
      the ExpressionFactory instance
    • getELContext

      public StandardELContext getELContext()
      Returns the StandardELContext managed by this ELManager, creating it on first access if it does not already exist.
      Returns:
      the StandardELContext instance
    • setELContext

      public ELContext setELContext(ELContext context)
      Replaces the current EL context with a new StandardELContext initialized from the given context. The new context copies the ELResolver chain, FunctionMapper, VariableMapper, and other settings from the provided context.
      Parameters:
      context - the ELContext from which to initialize the new context
      Returns:
      the previous StandardELContext, or null if none existed
    • addBeanNameResolver

      public void addBeanNameResolver(BeanNameResolver beanNameResolver)
      Adds a BeanNameELResolver to the resolver chain that uses the given BeanNameResolver to resolve top-level identifiers to managed beans.
      Parameters:
      beanNameResolver - the resolver for bean names
    • addELResolver

      public void addELResolver(ELResolver resolver)
      Adds an ELResolver to the front of the resolver chain in the managed EL context. Resolvers added first have higher priority during property resolution.
      Parameters:
      resolver - the ELResolver to add
    • mapFunction

      public void mapFunction(String prefix, String function, Method method)
      Maps a static method to an EL function name with the given prefix and local name. The function can then be invoked in EL expressions as prefix:function(args).
      Parameters:
      prefix - the namespace prefix for the function
      function - the local function name
      method - the static Method to map
    • setVariable

      public void setVariable(String variable, ValueExpression expression)
      Registers a variable in the EL context's variable mapper. The variable can then be referenced by name in EL expressions. Passing a null expression removes the variable.
      Parameters:
      variable - the variable name
      expression - the ValueExpression associated with the variable, or null to remove
    • importStatic

      public void importStatic(String staticMemberName) throws ELException
      Imports a static field or method so it can be referenced by its simple name in EL expressions. The argument must be a fully qualified name in the form className.staticMemberName.
      Parameters:
      staticMemberName - the fully qualified name of the static member to import
      Throws:
      ELException - if the static member cannot be found or is ambiguous
    • importClass

      public void importClass(String className) throws ELException
      Imports a class so it can be referenced by its simple name in EL expressions. The argument must be a fully qualified class name.
      Parameters:
      className - the fully qualified class name to import
      Throws:
      ELException - if the class name is invalid or conflicts with an existing import
    • importPackage

      public void importPackage(String packageName)
      Imports all classes from a package so they can be referenced by their simple names in EL expressions.
      Parameters:
      packageName - the package name to import
    • defineBean

      public Object defineBean(String name, Object bean)
      Defines or removes a bean accessible by name in EL expressions. When a non-null bean is provided, it is stored under the given name. When null is provided, the bean with the given name is removed.
      Parameters:
      name - the bean name
      bean - the bean object to define, or null to remove the bean
      Returns:
      the previous bean associated with the name, or null if there was none
    • addEvaluationListener

      public void addEvaluationListener(EvaluationListener listener)
      Registers an EvaluationListener with the managed EL context. The listener will be notified before and after expression evaluation, and when properties are resolved.
      Parameters:
      listener - the EvaluationListener to register