Class CmsJspSimpleELResolver

java.lang.Object
jakarta.el.ELResolver
jakarta.servlet.jsp.el.ScopedAttributeELResolver
org.opencms.jsp.util.CmsJspSimpleELResolver

public class CmsJspSimpleELResolver extends jakarta.servlet.jsp.el.ScopedAttributeELResolver
Does basically the same as ScopedAttributeELResolver, but always marks top-level properties as resolved even if no value was found.

This is meant to bypass ImportELResolver (in Jakarta EE 10 and later), which comes later in the resolver chain and would be normally triggered later for an unresolved property, but incurs a heavy performance penalty on Jetty, especially in combination with the Mercury template, where potentially undefined top-level variables are used a lot.

Using this means that the functionality provided by ImportELResolver will not be available in OpenCms JSPs.

  • Constructor Details

  • Method Details

    • getCommonPropertyType

      public Class<String> getCommonPropertyType(jakarta.el.ELContext context, Object base)
      Overrides:
      getCommonPropertyType in class jakarta.servlet.jsp.el.ScopedAttributeELResolver
      See Also:
      • ScopedAttributeELResolver.getCommonPropertyType(jakarta.el.ELContext, java.lang.Object)
    • getType

      public Class<Object> getType(jakarta.el.ELContext context, Object base, Object property)
      Overrides:
      getType in class jakarta.servlet.jsp.el.ScopedAttributeELResolver
      See Also:
      • ScopedAttributeELResolver.getType(jakarta.el.ELContext, java.lang.Object, java.lang.Object)
    • getValue

      public Object getValue(jakarta.el.ELContext context, Object base, Object property)
      Overrides:
      getValue in class jakarta.servlet.jsp.el.ScopedAttributeELResolver
      See Also:
      • ScopedAttributeELResolver.getValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object)
    • isReadOnly

      public boolean isReadOnly(jakarta.el.ELContext context, Object base, Object property)
      Overrides:
      isReadOnly in class jakarta.servlet.jsp.el.ScopedAttributeELResolver
      See Also:
      • ScopedAttributeELResolver.isReadOnly(jakarta.el.ELContext, java.lang.Object, java.lang.Object)
    • setValue

      public void setValue(jakarta.el.ELContext context, Object base, Object property, Object value)
      Overrides:
      setValue in class jakarta.servlet.jsp.el.ScopedAttributeELResolver
      See Also:
      • ScopedAttributeELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)