Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...


Sugerencias de Diseño

...

de la UI

Si se quieren realizar actualizaciones complejas de la UI, la forma más sencilla es usando <f:ajax> dentro de <fw:socket>. Ejemplo:

Bloque de código
languagexml
<h:panelGroup id="foo">
    ... (some complex UI here) ...
</h:panelGroup>

<h:form>
    <fw:socket channel="someChannel" scope="view">
        <f:ajax event="someEvent" listener="#{bean.pushed}" render=":foo" />
    </fw:socket>
</h:form>


Donde el mensaje push, solo contien el nombre del evento Ajax. Puedes usar cualquier nombre de evento personalizado.

Bloque de código
languagejava
someChannel.send("someEvent");


Otra alternativa, es combinar <fw:socket> con <p:remoteCommand>, ejemplo:

Bloque de código
languagexml
<h:panelGroup id="foo">
    ... (some complex UI here) ...
</h:panelGroup>

<fw:socket channel="someChannel" scope="view" onmessage="someCommandScript" />
<h:form>
    <p:remoteCommand name="someCommandScript" action="#{bean.pushed}" update=":foo" />
</h:form>


Si se para un Map<String, V> o un POJO (JAVABEAN) como el objeto en el mensaje push, después todas las entradas/propiedades estarán disponibles como parámetros de la solicitud en la acción del comando #{bean.pushed}.