jsf-2 - 为什么复合组件的 “rendered”属性会引发IllegalArgumentException?

标签 jsf-2 facelets composite-component

我创建一个这样的复合组件:

<cc:interface>        
    <cc:attribute name="value" 
                  required="true" />
    <cc:attribute name="rendered"
                  displayName="True to render"
                  default="true" />
</cc:interface>

当我调用此组件时,我收到一个IllegalArgumentException。我可以将呈现的名称更改为其他名称(例如 doIt ),然后它可以工作。

是否以某种方式保留了呈现的属性?我希望复合组件看起来像“常规” JSF组件。

这是莫哈拉(Mojarra)的事。

最佳答案

复合组件扩展了 UINamingContainer ,这又扩展了 UIComponentBase ,后者又已经定义了idrendered属性。您不需要自己指定它们。只需删除<cc:attribute name="rendered">即可。如果您在复合组件标签上指定rendered属性,那么它将被解释并应用于复合组件本身。

如果打算渲染复合 Material 的特定子代,则最好发明一个不同的属性名称。例如,renderSomeChild

关于jsf-2 - 为什么复合组件的 “rendered”属性会引发IllegalArgumentException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106410/

相关文章:

css - 带有自定义 css 文件的 primefaces

java - JSF - 使用 ajax 调用更改 panelGroup - Beans、EL 和?

jsf - JSF 自定义复合组件与自定义经典组件有什么区别

java - 复合组件中的阶段监听器从未被调用过

java - PrimeFaces 和复合组件的问题

jsf - 如何创建多个 p :confirm dialogs on a single page

java - 如何更新 p :selectCheckboxMenu without the component being closed after ajax call in primefaces? 的标签

java - 在 dataTable 中使用 commandLink、ViewScope 时,JSF 输出未按预期输出

java - 有 ASP.Net MVC 经验,如何学习 JSP/MVC?

html - faceletes 属性包如何将文本加粗