【问题标题】:How to pass JavaScript values to JSF EL and backing bean?如何将 JavaScript 值传递给 JSF EL 和支持 bean?
【发布时间】:2011-06-09 11:08:10
【问题描述】:

我正在做 JSF 地理定位服务,我需要将纬度和经度传递给 bean 进行处理。 HTML5 允许使用 JavaScript 获取位置,例如在 http://code.google.com/p/geo-location-javascript/ 中完成的操作。 将以下代码放入 JSF 页面会显示带有 GPS 坐标的警报

<script>
    if (geo_position_js.init()) {
        geo_position_js.getCurrentPosition(success_callback,error_callback,{enableHighAccuracy:true,options:5000});
    } else {
        alert("Functionality not available");
    }
    function success_callback(p) {
        alert('lat='+p.coords.latitude.toFixed(2)+';lon='+p.coords.longitude.toFixed(2));
    }

    function error_callback(p) {
        alert('error='+p.message);
    }
</script>

如何使用p.coords.latitude.toFixed(2) 值将其传递给例如h:inputtext 组件?

【问题讨论】:

    标签: javascript jsf html geolocation el


    【解决方案1】:

    您需要意识到 JSF 在 webserver 上运行并生成一堆 HTML/CSS/JS 代码,这些代码从 webserver 发送到 webbrowser,并且 webbrowser 只运行 HTML/CSS/JS。右键单击 webbrowser 中的页面并选择查看源代码。代替&lt;h:inputText&gt;,您会看到类似

    <input type="text" id="formid:inputid" />
    

    在 JS 中,您可以使用 document 函数轻松地从 HTML DOM 中获取 HTML 元素并对其进行修改。

    var input = document.getElementById('formid:inputid');
    input.value = 'new value';
    

    另见:

    【讨论】:

    • 这在 facelets 中有效吗?因为我使用了它,但它一直在支持 bean 返回一个空值
    • @Developer106:JSF/Facelets 只是在网络服务器上运行并生成 HTML。 JS 是 HTML 的一部分,在 webbrowser 上运行。如何生成 HTML 与 JS 完全无关。如果您“一直为 null”,则只能表示您不了解 JSF/Facelets 和 HTML/JS 的工作原理。
    猜你喜欢
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2019-09-27
    • 2013-12-30
    • 2011-07-24
    相关资源
    最近更新 更多