zagnieżdżanie łańcuchów wyrażeń JSF

Chcę to osiągnąć za pomocą dynamicznych parametrów dla wyrażeń wartości:

<h:dataTable value="#{someBean.someValue}" var="field">
    <h:column>#{anotherBean[field]}</h:column>
</h:dataTable>

gdziefield jest'user.name' lub'location.address.zip' lub...

Czy to możliwe?

Zauważ, że jest to prosty przykład, który mnie interesujeValueExpression nie wdataTable składnik.

AKTUALIZACJA teraz pytanie brzmi: jak zastąpić standardowy BeanELResolver?

patrząc w ELUtils:

    ...
    composite.addRootELResolver(IMPLICIT_RESOLVER);
    composite.add(FLASH_RESOLVER);
    composite.addPropertyELResolver(COMPOSITE_COMPONENT_ATTRIBUTES_EL_RESOLVER);
    addELResolvers(composite, associate.getELResolversFromFacesConfig());
    addVariableResolvers(composite, FacesCompositeELResolver.ELResolverChainType.Faces,
            associate);
    addPropertyResolvers(composite, associate);
    composite.add(associate.getApplicationELResolvers());
    composite.addRootELResolver(MANAGED_BEAN_RESOLVER);
    composite.addPropertyELResolver(RESOURCE_RESOLVER);
    composite.addPropertyELResolver(BUNDLE_RESOLVER);
    ...

ale nie rozumiem jeszcze w pełni łańcucha resolvera ... więc pójdę na studia :)

AKTUALIZACJA 2

ten kod działa;)

public class ExtendedBeanELResolver extends BeanELResolver
{
    @Override
    public Object getValue(ELContext context, Object base, Object property) throws NullPointerException, PropertyNotFoundException, ELException
    {
        try
        {
            return super.getValue(context, base, property);
        }
        catch(PropertyNotFoundException e)
        {
            try
            {
                Object value = base;

                for(String part : property.toString().split("\\."))
                {
                    value = super.getValue(context, value, part);
                }

                return value;
            }
            catch(PropertyNotFoundException e1)
            {
                context.setPropertyResolved(false);
            }
        }

        return null;
    }
}

questionAnswers(2)

yourAnswerToTheQuestion