Вложение динамических атрибутов в составные компоненты
Я борюсь с вложением динамических атрибутов 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}"
Я надеюсь, вы знаете, чего я хочу достичь. Можете ли вы помочь мне немного здесь?