Error Cannot find component with identifier

Si eres usuario -principiante- de PrimeFaces seguramente al estar desarrollando tus primeras páginas JSF, se te presentará el siguiente error:

javax.servlet.ServletException: Cannot find component with identifier “Id2” referenced from “Id1“.

Recuerda que el Id es el atributo que identifica de forma única un elemento dentro de una página html, por lo tanto el error esta ocasionado porque hacemos referencia en el elemento Id1 al elemento Id2 el cual no existe.

Vean el siguiente código.

<h:form id=”formulario”>

       <p:inputText id=”itNombre” value=”#{myBean.nombre}”>

             <p:ajax event=”change” update=“otNombre”/>

       </p>

      <h:outputText id=“otNombre” value=”#{myBean.nombre}”/>

<h:form>

PrimeFaces al compilar las páginas y prepararlas para el despliegue asigna a todo elemento que no tenga un id determinado por el programador un id aleatorio. En el caso de elementos contenidos dentro de otros, construye el id de forma jerárquica, heredando el elemento más interno los id de los elementos que lo contiene separado por dos puntos -:-.

El código nos indica que cuando se modifique el valor desde itNombre se actualice el elemento otNombre con el nuevo valor de myBean.nombre, sin embargo, será necesario poner en el parámetro update del elemento idNombre :formulario:otNombre.

De tal modo el código que seguramente impide algún tipo de error será el siguiente.

<h:form id=”formulario”>

       <p:inputText id=”itNombre” value=”#{myBean.nombre}”>

             <p:ajax event=”change” update=“:formulario:otNombre”/>

       </p>

      <h:outputText id=“otNombre” value=”#{myBean.nombre}”/>

<h:form>

Para que tengas la certeza del id que se asignó al elemento otNombre te recomiendo que antes de colocar el parámetro update despliega tu página html y con la opción de inspección del código de tu navegador identificques el id asignado a tu elemento. Y asigna el valor del id en el lugar donde necesitas hacer referencia a él.

 


All comments of post - "Error Cannot find component with identifier":

:Haha! I'am the first! Yeh~

Thank you!

*

Add a Comment / Trackback url

Comment begin from here or jump up!