Как передать значения JavaScript в JSF EL и бэк-бин? - PullRequest
6 голосов
/ 15 января 2011

Я выполняю службу геолокации JSF, где мне нужно передать широту и долготу бину для обработки. 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 компонент?

1 Ответ

9 голосов
/ 15 января 2011

Вы должны понимать, что JSF работает на веб-сервере и создает набор кода HTML / CSS / JS, который отправляется с веб-сервера на веб-браузер, и что веб-браузер работает только на HTML / CSS / JS.Щелкните правой кнопкой мыши страницу в веб-браузере и выберите Просмотр источника .Вместо <h:inputText> вы увидите что-то вроде

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

. В JS вы можете легко извлекать элементы HTML из HTML DOM с помощью функций document и изменять их.

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

См. Также:

...