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