我正在用JavaScript准备一些变量(在我的特定情况下,我想获取GPS位置):
function getVars() { // ... var x = locationInfo.lng; var y = locationInfo.lat; }
我想通过下面的命令按钮将它们发送到我的托管bean:
<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit(x,y)}" /> public void submit(int x, int y) { // ... }
如何将JavaScript中的变量x和y变量发送到JSF托管bean操作方法?
x
y
让JS以相同的形式将它们设置为隐藏的输入值。
<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; }
命令按钮操作方法可以按通常方式将它们作为bean属性进行访问。
private int x; private int y; public void submit() { System.out.println("x: " + x); System.out.println("y: " + y); // ... } // Getters+setters.