Mah*_*leh 2 jsf icefaces jsf-2
我定义h:messages组件如下:
<h:messages id="summary" styleClass="summary" globalOnly="true"/>
Run Code Online (Sandbox Code Playgroud)
但是当我用firebug检查元素时,我注意到id被翻译成类似于: j_idt33:summary
这个前缀是什么,为什么会产生?
这是父的ID NamingContainer
部件等<h:form>
,<h:dataTable>
,<ui:repeat>
,<f:subview>
,复合部件等
JSF使用父命名容器组件的ID预先生成生成的HTML客户端ID,以便在生成的HTML输出中多次重用组件时避免HTML客户端ID中的冲突,例如在表行或包含文件中或者复合组件等.具有相同ID的多个HTML元素是非法的.
您可以通过为NamingContainer
组件提供固定ID 来抑制自动生成的ID.在你的特殊情况下,它很可能是<h:form>
.所以给它一个固定的ID,例如
<h:form id="form">
...
Run Code Online (Sandbox Code Playgroud)
这种方式j_idt33:summary
将成为form:summary
.