Es posible actualizar partes de mi página que no son componentes JSF?

Por ejemplo, puedo actualizar el HTML <div> o necesito un envoltorio en un componente JSF?

posibles duplicados de JSF actualización de primefaces árbol de los niños
Esto es acerca de la actualización de la llanura de los elementos HTML en JSF y no la primefaces árbol de componentes.

OriginalEl autor Nick Russler | 2012-10-22

3 Comentarios

  1. 23

    Es posible actualizar partes de mi página que no son componentes JSF?

    No. El componente actualizado, tiene que estar disponible por UIViewRoot#findComponent(), por lo que JSF puede encontrar, invocar encodeAll(), captura el código HTML generado de salida y pasar por él en la respuesta de ajax para que JavaScript puede actualizar el DOM de HTML árbol con ella. La llanura de los elementos HTML no están representados como real UIComponent instancias en el árbol de componentes JSF, así JSF ya no puede localizar a ellos en primer lugar.


    Por ejemplo, puedo actualizar el HTML <div> o necesito un envoltorio en un componente JSF?

    Usted necesita para envolver en un componente JSF como <h:panelGroup>. Sin embargo, puede simplemente usar <h:panelGroup layout="block"> para representar un verdadero <div> en JSF. De esta manera usted no necesita para envolver el <div> en otro componente JSF.

    <h:panelGroup layout="block" id="foo">
        ...
    </h:panelGroup>

    Desde JSF 2.2, puede utilizar las nuevas la pasarela de los elementos cuentan con jsf:id atributo a declarar HTML(5) elementos como componentes JSF.

    <... xmlns:jsf="http://xmlns.jcp.org/jsf">
    
    <div jsf:id="foo">
        ...
    </div>

    <main jsf:id="bar">
        ...
    </main>

    <section jsf:id="baz">
        ...
    </section>

    Ellos rendirán su salida en que se encuentra, pero bajo las cubiertas serán de hormigón UIPanel instancia.

    Hay sin embargo una esquina caso en caso de los componentes de material compuesto. Usted puede utilizar el siguiente enfoque para tener un elemento HTML que es actualizable por ajax.

    <cc:implementation>
        <span id="#{cc.clientId}">
            ...
        </span>
    </cc:implementation>

    La explicación de que este enfoque funciona es porque a pesar de que el componente compuesto hace no represente para el HTML de salida, es por sí mismo a disposición por UIViewRoot#findComponent().

    Véase también:

    lo que no entiendo no es cc.clientId el id de la todo componente ? Yo no entiendo jsf que ahora, pero no puedo actualizar el conjunto de la «envoltura» del componente y no el div de la misma ?
    Sí, eso es exactamente lo que este hack funciona.
    yo en mi caso particular yo quería actualización de los nodos secundarios de la primefaces árbol, pero no podía envolver al niño. He encontrado una solución, de todos modos el uso de la primefaces método de despliegue 🙂 (stackoverflow.com/questions/13000870/…)
    Esto no está relacionado con la pregunta actual.
    Sí, lo sé, sólo quería decirte que yo todavía tenía mi final feliz

    OriginalEl autor BalusC

  2. 1

    Parece que no se puede.

    para actualizar algo envuélvalo en un ‘actualizar’ componente (en primeaces p:outputpanel) y actualización que uno.

    Además: en el caso especial de que se puede actualizar los hijos de la p:árbol de esa manera: JSF actualización de primefaces árbol de los niños

    (jaja siempre quería hablar de mí en tercera persona)

    OriginalEl autor Nick Russler

  3. -1

    AFAIK de actualizar los componentes de su identidad y desde periódica de los elementos puede tener un IDENTIFICADOR debe ser posible siempre y cuando usted consigue el derecho de ID 😉

    hm y cuando tengo por ejemplo un div: <div id=»algo» /> derecho id no es «algo» ? Porque cuando agrego <p:remoteCommand name="updatte" update=":something"></p:remoteCommand> tengo un Cannot find component with identifier "something" referenced from "j_idt62:j_idt68:j_idt69".
    Supongo que no es posible, entonces : -) ¿Qué estás tratando de hacer? Tal vez hay alternativas.
    quiero actualizar un treenode de un primefaces árbol, sin actualizar el árbol entero
    Usted no puede actualizar un solo nodo de un árbol. El IDENTIFICADOR de un nodo no es visible para el cliente. Compruebe el código HTML generado de la página JSF.
    puedo obtener el id de nodo en el cliente, pero si me pasan el id, por ejemplo, para el PrimeFaces.ajax.AjaxRequest no se actualiza (mientras que cuando se me pase el árbol id actualizaciones)… Así que conseguir el id no es el problema

    OriginalEl autor siebz0r

Dejar respuesta

Please enter your comment!
Please enter your name here