【问题标题】:How do I bind a composite component in JSF?如何在 JSF 中绑定复合组件?
【发布时间】:2023-04-03 19:52:01
【问题描述】:

我有一个由其他复合组件组成的复合组件。现在我只想渲染父组件中的一些子组件。从 Java EE 教程中,我认为我可能应该将我的子组件绑定到父组件的支持 bean 的某些属性,以便我可以访问它们的 render 属性。

但是,NetBeans IDE 不知道我的复合组件的 binding 属性。那我该怎么做呢?

用例:父组件是某个向导,它一次只能显示一个子组件。把它想象成一个穷人的标签视图。我知道有一些库为此提供了现成的组件,但我不想添加另一个依赖项。

【问题讨论】:

    标签: jsf composite-component


    【解决方案1】:

    Netbeans 在撒谎。 <ui:component> 绝对支持该属性。只需使用它并忽略 IDE 中的警告/错误。或者更好,只需使用rendered 属性;有条件地渲染组件的需要并不是选择 binding 而不是 rendered 的正当理由。

    【讨论】:

    • 是的,NetBeans 是在撒谎,但 Java EE 教程 7 也说 binding 属性将出现在输出标签中,我的复合组件是 UINamingContainer,而不是 UIOutput .
    • 不,它存在于UIComponent,也由<ui:component> 表示(您是否单击了我回答中的VDL 链接?)。
    • 谢谢,我做到了,但我使用的是自定义组件,即http://java.sun.com/jsf/composite 命名空间的interface 和implementation 标签。不知道这与您的标签有何关系。
    • 我知道。复合组件被隐式解释为<ui:component>。顺便说一下,“自定义组件”是复合组件的错误术语。另请参阅 stackoverflow.com/questions/6822000/… 和 stackoverflow.com/tags/composite-component/info
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 2013-03-23
    • 2013-04-22
    • 2011-06-04
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多