una - ¿Cómo pasar variables de JavaScript como parámetros al método de acción JSF?
retornar valor de una funcion javascript (1)
Deje que JS los establezca como valores de entrada ocultos en la misma forma.
<h:form id="formId">
<h:inputHidden id="x" value="#{bean.x}" />
<h:inputHidden id="y" value="#{bean.y}" />
<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit}" />
</h:form>
function getVars() {
// ...
var x = locationInfo.lng;
var y = locationInfo.lat;
document.getElementById("formId:x").value = x;
document.getElementById("formId:y").value = y;
}
El método de acción del botón de comando podría acceder a ellos como propiedades de bean de la manera habitual.
private int x;
private int y;
public void submit() {
System.out.println("x: " + x);
System.out.println("y: " + y);
// ...
}
// Getters+setters.
Una alternativa es usar OmniFaces <o:commandScript>
o PrimeFaces <p:remoteCommand>
lugar de <h:commandButton>
. Ver también ao ¿Cómo invocar un bean gestionado JSF en un evento HTML DOM usando JavaScript nativo?
Estoy preparando algunas variables en JavaScript (en mi caso específico, me gustaría obtener la ubicación del GPS):
function getVars() {
// ...
var x = locationInfo.lng;
var y = locationInfo.lat;
}
Me gustaría enviarlos a mi bean administrado a través del siguiente botón de comando:
<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit(x,y)}" />
public void submit(int x, int y) {
// ...
}
¿Cómo puedo enviar variables y
desde JavaScript al método de acción de frijol administrado JSF?