#{cc.foo}和#{cc.attrs.foo}之间有什么区别?

时间:2014-07-24 16:06:58

标签: jsf composite-component

我试图将某些内容添加到其他人创建的复合组件中,并且其中有一个#{cc.foo}。我似乎无法找到定义foo的位置,甚至在整个代码库上执行grep。

cc.attrs.foocc.foo之间的区别是什么?

编辑我在某个罐子里发现了它,因此我在搜索中没有看到它。问题仍然存在。感谢

1 个答案:

答案 0 :(得分:1)

究竟是什么foo?复合组件(与其他UIComponent s)具有预定义的某些属性:例如,#{cc.rendered}#{cc.clientId}由Java EE规范定义,而不是用户定义,因此它们始终在复合内可用组件。

通常,#{cc.whatever}将是组件本身的属性:其组件ID #{cc.id},其客户端ID(即呈现为HTML标记的id属性的内容){{ 1}},其父组件#{cc.clientID}等。这些由Java EE提供。另一方面,组件开发人员提供#{cc.parent}:它们将是复合组件的命名属性:对于复合组件文件的#{cc.attrs.whatever}部分中的每个<composite:attribute name="myAttribute" ... />,将是<composite:interface>可用于composte组件文件的#{cc.attrs.myAttribute}部分。