我正在努力在复合组件中嵌套动态 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}"
我希望你知道我想要达到的目标。你能帮我一下吗?