2012-03-09 24 views
5

Deseo enviar (ejecutar) valores de varios formularios, no solo el formulario adjunto. Entonces, quiero ser capaz de hacer algo como esto:JSF: Ejecutar valores de formularios múltiples

<h:form id="form1> 
    <h:inputText id="testinput1" value="#{testBean.input1}" /> 
</h:form> 

<h:form id="form2> 
    <h:inputText id="testinput2" value="#{testBean.input2}" /> 

    <h:commandButton value="Submit"> 
     <f:ajax execute=":form1 :form2"/> 
    </h:commandButton> 
</h:form> 

¿Cómo solucionaría esto?

What is <f:ajax execute="@all"> really supposed to do? It POSTs only the enclosing form parece estar relacionado, pero resuelve un problema ligeramente diferente y tampoco lo resuelve (o esto).

Respuesta

4

Ajax o no, esto no es posible con JSF/HTML simple. Todos los elementos de entrada que deben procesarse realmente deben ir dentro de la misma forma.

+1

@Matt: eso es correcto. Sin embargo, hay una diferencia para ellos en el atributo 'render'. – BalusC

+0

Gracias por aclarar, BalusC. ¿Esto es por especificación o una restricción de html/js? –

+1

@Matt: la especificación nunca ha indicado que '@ all' ejecutará todas las formas. Técnicamente, también es imposible (aunque para JS es fácil solucionar esto fusionando los valores del formulario, pero en JSF el estado y la acción de la vista dependen del formulario). IMO el '@ all' nunca debería haber sido uno de los valores disponibles de' execute'. No agrega ningún valor y solo es confuso. – BalusC

Cuestiones relacionadas