Вложение динамических атрибутов в составные компоненты

Я борюсь с вложением динамических атрибутов JSF в составные компоненты.

Давайте представим следующую структуру на стороне клиента:

class BackingBean{
    Animal animal;
}

class Animal {
    Type type;
}

class Type{
    String name;
}

Со стороны просмотра я могу добраться до вложенных полей, используя . персонаж:

#{backingBean.animal.type.name}

В этом случае все работает как шарм. Проблема возникает, когда я хочу переформулировать ее в composite component и представляют собой вложенные fields как отдельный attributes:

<cc:interface>  
    <cc:attribute name="mainAttribute"/>
    <cc:attribute name="nestedAttribute"/>
    <cc:attribute name="valuesProviderService"/>
</cc:interface>

<cc:implementation>
    <f:selectItems value="#{cc.attrs.valuesProviderService.findAnimals}" 
    var="animal" itemValue="#{animal}" itemLabel="#{$HERE_IS_NESTING$}" />
</cc:implementation>

Я пробовал разные подходы, но я думаю, что моих текущих знаний недостаточно, чтобы их решить.

Я пытался использовать вложение с [ символ как:

itemLabel="#{animal[cc.attrs.mainAttribute[cc.attrs.nestedAttribute]]}"

также пытался с c:set

<c:set var="main" value="#{cc.attrs.mainAttribute}" />
<c:set var="nested" value="#{cc.attrs.nestedAttribute}" />   

а затем использовать его itemLabel="#{animal.main.nested}"

Я надеюсь, вы знаете, чего я хочу достичь. Можете ли вы помочь мне немного здесь?

0 ответов

Другие вопросы по тегам