当前位置: 首页 > 知识库问答 >
问题:

如何将JavaScript变量作为参数传递给JSF动作方法?

高运诚
2023-03-14
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) {
    // ...
}

我如何将xy变量从JavaScript发送到JSF托管bean动作方法?

共有1个答案

益炜
2023-03-14

让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;
}

command button action方法可以以通常的方式作为bean属性访问它们。

private int x;
private int y;

public void submit() {
    System.out.println("x: " + x);
    System.out.println("y: " + y);
    // ...
}

// Getters+setters.

另一种方法是使用OmniFaces 或PrimeFaces 而不是 。另见A.O.如何使用本机JavaScript在HTML DOM事件上调用JSF托管bean?

 类似资料:
  • 问题内容: 我正在用JavaScript准备一些变量(在我的特定情况下,我想获取GPS位置): 我想通过下面的命令按钮将它们发送到我的托管bean: 如何将JavaScript中的变量和变量发送到JSF托管bean操作方法? 问题答案: 让JS以相同的形式将它们设置为隐藏的输入值。 命令按钮操作方法可以按通常方式将它们作为bean属性进行访问。

  • 我有静态方法在我的类 这就是定义 这里用的是 这是我得到的一个错误 E0167类型为“void(TV_DepthCamAgent::)(int count,int copied_file)”的参数与类型为“void()(int,int)”的参数不兼容 错误C3867“TV_DepthCamAgent::progress_callback”:非标准语法;使用' 我做错了什么?

  • 组件具有变量作为观察者: 当

  • 在下面的代码中,我希望将'races.class'作为参数传递给方法'get allraces()'。我该怎么做?

  • 问题内容: 我正在创建一种通过传递搜索字段从任何表中选择ID的方法。 但是我得到一个有关语法错误的MySqlException。当我查看“异常”消息时,它向我显示带引号的查询表!如何将表格作为不带引号的参数传递? 问题答案: 大多数数据库不允许您通过参数指定表名或列名。参数用于 值 。如果确实确实需要使它动态化,则应验证输入(它应该是一个已知的表名,并且该表中具有已知的列名),然后将其包括在SQL

  • 问题内容: 我有一个Angular作用域变量streetName。 如何在此控制器(添加)作用域下定义的javascript中访问streetName。请帮忙。 问题答案: 这种方法很长,但是有效: 更具可读性: 如果使用jQuery,它会更短: 链接到jsfiddle演示