code: @Override
      public ELResolver getELResolver() {
          if (elResolver == null) {
              CompositeELResolver resolver = new CompositeELResolver();
              customResolvers = new CompositeELResolver();
              resolver.add(customResolvers);
              resolver.add(new BeanNameELResolver(new LocalBeanNameResolver()));
              if (streamELResolver != null) {
                  resolver.add(streamELResolver);
              }
              resolver.add(new StaticFieldELResolver());
              resolver.add(new MapELResolver());
              resolver.add(new ResourceBundleELResolver());
              resolver.add(new ListELResolver());
              resolver.add(new ArrayELResolver());
              resolver.add(new BeanELResolver());
              elResolver = resolver;
          }
          return elResolver;
      }
docs: Construct (if needed) and return a default ELResolver.
  <p>Retrieves the <code>ELResolver</code> associated with this context.
  This is a <code>CompositeELResover</code> consists of an ordered list of
  <code>ELResolver</code>s.
  <ol>
  <li>A {@link BeanNameELResolver} for beans defined locally</li>
  <li>Any custom <code>ELResolver</code>s</li>
  <li>An <code>ELResolver</code> supporting the collection operations</li>
  <li>A {@link StaticFieldELResolver} for resolving static fields</li>
  <li>A {@link MapELResolver} for resolving Map properties</li>
  <li>A {@link ResourceBundleELResolver} for resolving ResourceBundle properties</li>
  <li>A {@link ListELResolver} for resolving List properties</li>
  <li>An {@link ArrayELResolver} for resolving array properties</li>
  <li>A {@link BeanELResolver} for resolving bean properties</li>
  </ol>
  </p>
  @return The ELResolver for this context.