将 POJO 传递给自定义控件 属性
Passing a POJO to a custom control property
我正在重构一个 XPages 应用程序,它有五个嵌套的重复控件,重复基本相同的内容(xp:panel)。我想,啊哈,这是一个带有属性的自定义控件!
我正在围绕托管 bean 的属性循环我的重复控件,我希望我可以为自定义控件设置一个 属性 以只接受我发送的 POJO(然后在自定义控件中使用 EL 访问它)。
我该怎么办?使自定义控件仅接收字符串、数字等并将整个嵌套控件逻辑放在外面?或者有什么技巧?
自定义控件可以轻松接受通过自定义属性传入的 java 对象。只需使用类型:java.lang.Object
所有的答案都是正确的,但只有大卫把它作为答案 - 感谢大家!
我已经在这里为以后的任何人记录了我的代码:我将节点定义为 java.lang.Object 类型。注意将对象放入自定义控件的语法:
<xp:repeat
id="repeatfirstlevelnode"
value="#{TableOfContents.root.children}"
var="firstlevelnode">
<xc:ccPanelNavigation
node="#{firstlevelnode}"
panelStyleWhenActive="panelLevel1 active bold"
panelStyleWhenInactive="panelLevel1"
NameNestedRepeatControl="repeatsecondlevelnodes">
</xc:ccPanelNavigation>
进入自定义控件后,您可以使用 CompositeData.YourObject 访问 属性。
<xp:image
id="imgDummy"
url="/dummyEC.png"
styleClass="imageDummy">
<xp:this.rendered><![CDATA[#{not compositeData.node.hasChildren}]]></xp:this.rendered>
</xp:image>
我正在重构一个 XPages 应用程序,它有五个嵌套的重复控件,重复基本相同的内容(xp:panel)。我想,啊哈,这是一个带有属性的自定义控件!
我正在围绕托管 bean 的属性循环我的重复控件,我希望我可以为自定义控件设置一个 属性 以只接受我发送的 POJO(然后在自定义控件中使用 EL 访问它)。
我该怎么办?使自定义控件仅接收字符串、数字等并将整个嵌套控件逻辑放在外面?或者有什么技巧?
自定义控件可以轻松接受通过自定义属性传入的 java 对象。只需使用类型:java.lang.Object
所有的答案都是正确的,但只有大卫把它作为答案 - 感谢大家!
我已经在这里为以后的任何人记录了我的代码:我将节点定义为 java.lang.Object 类型。注意将对象放入自定义控件的语法:
<xp:repeat
id="repeatfirstlevelnode"
value="#{TableOfContents.root.children}"
var="firstlevelnode">
<xc:ccPanelNavigation
node="#{firstlevelnode}"
panelStyleWhenActive="panelLevel1 active bold"
panelStyleWhenInactive="panelLevel1"
NameNestedRepeatControl="repeatsecondlevelnodes">
</xc:ccPanelNavigation>
进入自定义控件后,您可以使用 CompositeData.YourObject 访问 属性。
<xp:image
id="imgDummy"
url="/dummyEC.png"
styleClass="imageDummy">
<xp:this.rendered><![CDATA[#{not compositeData.node.hasChildren}]]></xp:this.rendered>
</xp:image>