2012-04-27 19 views
7

Quiero implementar algunos javas cript en mi componente compuesto JSF, pero tengo un problema con el ID. Mi script java con:Componentes compuestos & ID

document.getElementById("myForm:customerId") 

no funciona, porque la identificación es incorrecta. Tengo JSF componente compuesto:

<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> 

y HTML de salida es:

<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> 

¿Por qué es "j_idt44" utilizado en la salida HTML?

Respuesta

13

Los componentes compuestos son NamingContainer componentes como <h:form>, <h:dataTable>, etc. Esto le permite tener varios de ellos en la misma vista sin ID en conflicto.

También debe proporcionar una identificación fija al componente compuesto. P.ej.

<my:composite id="someId" /> 

También me sugieren usar <div id="#{cc.id}"> en lugar de <div id="element_customer">. Luego se convertirá en someId con el ejemplo anterior.


Sin relación al problema concreto, esto no es del todo el propósito correcto de un componente compuesto. Se pretende que un componente compuesto sea del mismo tipo de <h:inputText>, etc. Parece preferir un archivo de etiqueta o un archivo de inclusión. Ver también When to use <ui:include>, tag files, composite components and/or custom components?

+0

gracias. Sobre el uso de CC, publiqué esta pregunta sobre el uso correcto, pero todavía no estoy seguro: http://stackoverflow.com/questions/10056008/proper-using-of-facelet-templates-composite-components – Ziletka

+0

Parece que debería usar la etiqueta Facelet en lugar de los componentes compuestos. – Ziletka

+1

De nada. Sí, eso creo. – BalusC

Cuestiones relacionadas