我正在使用以下复合组件:
<composite:interface>
<composite:attribute name="inputId" />
</composite:interface>
<composite:implementation>
<h:panelGrid id="myTableId">
<h:inputText id="#{cc.attrs.inputId}" value="..." />
...
</h:panelGrid>
</composite:implementation>
我以如下形式使用它:
<h:form id="myForm">
<myCompositeComp:test inputId="myInputTextBoxId" />
<h:form>
我已经验证了页面的视图源,这就是它的生成方式:
<table id="myForm:j_idt90:myTableId">
...
<input type="text" id="myForm:j_idt90:myInputTextBoxId" />
</table>
我怎样才能摆脱j_idt90
这里?它id
是我的复合组件的吗?我从 BalusC 的一篇文章中读到,如果我声明id
为静态,这个问题将得到解决。但我无法确定在我的代码中声明它的位置。我也可以假设<h:panelGrid>
是一种UINamingContainer
?