Zil*_*tka 8 jsf composite-component jsf-2
我想在我的JSF复合组件中实现一些javas cript,但我有id的问题.我的java脚本:
document.getElementById("myForm:customerId")
Run Code Online (Sandbox Code Playgroud)
不起作用,因为id是错误的.我有JSF复合组件:
<composite:implementation>
<div id="element_customer">
<h2 class="element_title">Customer</h2>
<h:form id="myForm">
<h:inputText id="customerId" value="#{cc.attrs.customerId}"/>
</h:form>
</div>
</composite:implementation>
Run Code Online (Sandbox Code Playgroud)
和HTML输出是:
<div id="element_customer">
<h2 class="element_title">Customer</h2>
<form id="j_idt44:myForm" name="j_idt44:myForm" method="post" ... >
<input type="hidden" name="j_idt44:myForm" value="j_idt44:myForm" />
<input id="j_idt44:myForm:customerId" ... name="j_idt44:myForm:customerId" />
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
为什么HTML输出中使用"j_idt44"?
Bal*_*usC 13
复合组件是NamingContainer
类似的组件,等等.这允许您在同一视图中具有多个组件<h:form>
,<h:dataTable>
而不会发生冲突的ID.
您还需要为复合组件提供固定ID.例如
<my:composite id="someId" />
Run Code Online (Sandbox Code Playgroud)
我也建议用<div id="#{cc.id}">
而不是<div id="element_customer">
.然后它将成为someId
上述例子.
与具体问题无关,这不完全是复合组件的正确目的.复合组件意图是同一种类<h:inputText>
,等等.您似乎更喜欢标记文件或包含文件.另请参见何时使用<ui:include>,标记文件,复合组件和/或自定义组件?
归档时间: |
|
查看次数: |
10269 次 |
最近记录: |