¿Hay alguna forma de que un bean de respaldo JSF provoque una actualización de un componente en la página? No estoy buscando usar un componente ajax con el atributo de actualización para actualizar un componente en la página. Necesito activar una actualización desde dentro de un método de frijol de respaldo JSF. Tenga en cuenta que la actualización en la página puede ocurrir después de que se complete este método o antes de que se complete. Estoy usando PrimeFaces, si hay una solución que se pueda obtener usando PrimeFaces.
jsf-2
primefaces
Mejores prácticas
fuente
fuente
Respuestas:
Usando la API JSF estándar, agregue el ID de cliente a
PartialViewContext#getRenderIds()
.Usando la API específica de PrimeFaces, use
PrimeFaces.Ajax#update()
.O si aún no está en PrimeFaces 6.2+, use
RequestContext#update()
.Si utiliza la biblioteca de utilidades JSF OmniFaces , utilice
Ajax#update()
.Independientemente de la forma, tenga en cuenta que esas ID de cliente deben representar las ID de cliente absolutas que no tienen el prefijo del
NamingContainer
carácter separador como lo haría desde el lado de la vista.fuente
<f:ajax listener>
o<f:event type="preRenderView" listener>
<f:ajax>
. Esto se introduce desde JSF 2.0. Debería recurrir a las instalaciones específicas de la biblioteca de componentes JSF 1.2.También intenté actualizar un componente de un bean / clase de respaldo jsf
Debe hacer lo siguiente después de manipular el componente de la interfaz de usuario:
¡Es importante usar el clientId en lugar del componentId (del lado del servidor)!
fuente
El
RequestContext
está en desuso de Primefaces 6.2 . De esta versión use lo siguiente:Y para ejecutar javascript desde el backbean, use de esta manera:
Referencia:
fuente
Todo es posible solo si hay suficiente tiempo para investigar :)
Lo que tengo que hacer es como tener personas que iteraré en una interfaz de usuario: repetir y mostrar nombres y otros campos en las entradas. Pero uno de los campos era singleSelect - A y, dependiendo de este valor, actualice otra entrada - B. incluso ui: repetir no tengo id que puse y apareció en el árbol DOM
Que los identificadores en el html eran algo como:
Que en la vista tengo un método como:
Y su implementación fue en el bean como:
Así que de esta manera actualicé el elemento del bean sin problemas. PF versión 6.2
Buena suerte y feliz codificación :)
fuente
personType
, entonces pasar tanto la persona como el índice al oyente de ajax es superfluo. Puede obtener tanto la identificación como el valor del evento. Pero su solución puede ser necesaria para su caso de uso específico, pero como no hay un ejemplo completo (en un sabor de ejemplo reproducible mínimo ) es difícil saberlo.