class TilesContextELResolver extends ELResolver {

    @Override
    public Object getValue(ELContext context, Object base, Object property) {
        // only resolve at the root of the context
        if (base != null) {
            return null;
        }

        Object retValue = null;

        if (requestBeanInfo.getProperties(Request.class).contains(property)) {
            Request request = (Request) context
                    .getContext(Request.class);
            retValue = beanElResolver.getValue(context, request, property);
        } else if (requestBeanInfo.getProperties(ApplicationContext.class)
                .contains(property)) {
            ApplicationContext applicationContext = (ApplicationContext) context
                    .getContext(ApplicationContext.class);
            retValue = beanElResolver.getValue(context, applicationContext, property);
        }

        if (retValue != null) {
            context.setPropertyResolved(true);
        }

        return retValue;
    }

    public  TilesContextELResolver(ELResolver beanElResolver);

}