嵌套在复合组件中的动态属性

时间:2017-01-03 18:58:26

标签: jsf el composite-component dynamic-attributes

我正在努力在复合组件中嵌套动态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 个答案:

没有答案