如何向JSF自定义组件添加子组件以获得有效的客户端ID?
我已经创建了自定义组件和自定义渲染器,它们应该使用其他子组件,如:如何向JSF自定义组件添加子组件以获得有效的客户端ID?,jsf,jsf-2.2,custom-component,mojarra,Jsf,Jsf 2.2,Custom Component,Mojarra,我已经创建了自定义组件和自定义渲染器,它们应该使用其他子组件,如: doEncodeBegin(...){ final HtmlOutcomeTargetLink commandLink = (HtmlOutcomeTargetLink) context.getApplication().createComponent(HtmlOutcomeTargetLink.COMPONENT_TYPE); cmdLink.setId("myLink"); cmdLink.setParent(c
doEncodeBegin(...){
final HtmlOutcomeTargetLink commandLink = (HtmlOutcomeTargetLink) context.getApplication().createComponent(HtmlOutcomeTargetLink.COMPONENT_TYPE);
cmdLink.setId("myLink");
cmdLink.setParent(component);
cmdLink.encodeAll(context);
}
如果自定义组件的ID为“myComp”,则子组件应获得客户端ID“myComp:myLink”
但是,有时(例如在验证阶段)我会收到以下错误消息:“无法添加相同的组件两次”
==>这里的实际问题是什么
尝试过的解决方案-如BalusC所建议: