Cómo activar el renderizado JSF desde jQuery
Frecuentes
Visto 4,624 veces
2
¿Es posible activar jsf? <f:ajax render>
dentro de un jQuery?
Por ejemplo, algo como esto:
/* if component Y changes
trigger render event on component Y */
$("#source_compoment").bind("change", function(e) {
$("#target_component").trigger("render");
});
O con otras palabras, ¿hay un equivalente para "f: ajax render" dentro de jQuery?
1 Respuestas
4
Sí, haz un botón oculto
<h:commandButton id="myHiddenButtonID" value="RenderSomething" style="display:none">
<f:ajax render="target_component"></f:ajax>
</h:commandButton>
y haga clic en él desde js
$("#myHiddenButtonID").click();
en su caso específico se verá así:
$("#source_compoment").bind("change", function(e) {
$("#myHiddenButtonID").click();
});
por cierto, no hay un "equivalente para" f: ajax render "dentro de jQuery", simplemente use jquery para hacer clic en un botón JSF oculto.
Editar
En caso de que el uso de la biblioteca JSF de un tercero sea relevante, puede usar el
Primefaces RemoteCommand - (usar atributo de actualización)
or
contestado el 22 de mayo de 12 a las 11:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas jquery jsf jsf-2 richfaces or haz tu propia pregunta.
Esto responde exactamente a mi pregunta, pero no resuelve el problema subyacente, ya que quería evitar definir
<f:ajax render"long list of ui_comps">
en cada componente, pero hágalo en un lugar dentro de jQuery. - lzdt¿Estás seguro de que no puedes envolver esos identificadores con, por ejemplo, panelGroup y renderizarlos solo? de todos modos, tendrá que escribir esa larga lista de ui_comps si decide hacer el f:ajax usando la API JSF (no tan recomendado INMO) - Daniel
También creo que esa es una pregunta diferente ("Cómo evitar ' '"), porque envuelva esos identificadores con, digamos, panelGroup y renderice solo de una manera... - Daniel
Pregunta equivocada, de acuerdo. La agrupación es una opción. Si
f:ajax render
no se recomienda, ¿cuál es la forma recomendada de hacer esto? ¿Llamar a un método de frijol y hacer renderizado allí? Mi objetivo también era poder hacer una mejor cobertura de prueba unitaria para jsf-pages (es decir, estados de componentes de ui/propiedades de css y eventos activados). - lzdtBueno, tal vez podría resolver esto con un enfoque similar al de la publicación de Chris: community.jboss.org/thread/13915?tstart=-1&_sscc=t (con
a4j:jsFunction
'sreRender
y llamando a esa función dentrobind.("change")
evento). - lzdt