0

我正在努力在复合组件中嵌套动态 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}"

我希望你知道我想要达到的目标。你能帮我一下吗?

4

0 回答 0