Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jsf组件中使用父属性?_Jsf_Jsf 2_Facelets - Fatal编程技术网

如何在jsf组件中使用父属性?

如何在jsf组件中使用父属性?,jsf,jsf-2,facelets,Jsf,Jsf 2,Facelets,我注意到JSF组件中有一个(可能是新的)属性“parent”。我相信这是为了指定组件的父级,这样无论组件在哪里都可以保存在xhtml文件中。可以设置其父级 但我只是没能成功地利用它。如果用户知道所需JSF组件的id或clientid,如何使用它来指定组件的父级 尝试将父组件的id指定为“父”属性值时,出现以下错误: javax.el.ELException:无法将类java.lang.String的'addCustomTags_Bx'强制为类javax.faces.component.UICom

我注意到JSF组件中有一个(可能是新的)属性“parent”。我相信这是为了指定组件的父级,这样无论组件在哪里都可以保存在xhtml文件中。可以设置其父级

但我只是没能成功地利用它。如果用户知道所需JSF组件的id或clientid,如何使用它来指定组件的父级

尝试将父组件的id指定为“父”属性值时,出现以下错误:

javax.el.ELException:无法将类java.lang.String的'addCustomTags_Bx'强制为类javax.faces.component.UIComponent (不兼容类型)

我相信这是为了指定组件的父级,这样无论组件在哪里都可以保存在xhtml文件中

没有。
#{component.parent}
返回组件的父组件,该组件由可用,并且自1.0以来一直在JSF中。如上所述,属性的类型是
UIComponent
,而不是
String
。这完全解释了您在尝试使用
字符串设置EL异常时遇到的EL异常

还有一种方法,但是你不应该使用它。另见(重点不是我的):

public abstract void setParent(UIComponent parent)

此方法决不能被开发人员调用;
UIComponent
的内部实现将在组件添加到父级的子级
列表中或从父级的子级
列表中删除时调用它


因此,无论您考虑的是什么功能需求,都必须以不同的方式解决。将来,最好问一个关于你的问题。很可能您需要
(对于自定义组件或复合组件)或
(对于标记文件或模板文件)。

您可以添加一些代码吗?@dforce:这没什么不同。