I am trying to get user location latitude and longitude with geolocation and send the data to managed bean. My code can be seen below:
XHTML:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://java.sun.com/jsf/html">
<head>
<title>Get Current Position</title>
<script type="text/javascript">
var watchId = false;
function watchPosition() {
if (navigator.geolocation) {
watchId = navigator.geolocation.watchPosition(successPosition, failurePosition, {
enableHighAccuracy: false,
timeout: 1000,
maximumAge: 4000
});
} else
document.getElementById("result").innerHTML = "Your browser does not support Geolocation API!!!";
}
function failurePosition(error) {
alert("Error Code: " + error.code + " Error Message: " + error.message);
}
function stopWatching() {
navigator.geolocation.clearWatch(watchId);
}
function successPosition(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
document.getElementById("result").innerHTML = "Latitude: " + lat + " Longitude: " + long;
document.getElementById("latlngForm:lat").value = lat;
document.getElementById("latlngForm:lng").value = lng;
PF('lat').jq.val( lat );
PF('lng').jq.val( lng );
}
</script>
</head>
<body>
<div id="result">
</div>
<p:button id="btnStartTracking" onclick="watchPosition();" value="Start Traking Location" />
<p:button id="btnStartTracking" onclick="stopWatching();" value="Stop Traking Location" />
<h:form id="latlngForm">
<p:inputText id="lat" value="#{lntLngBean.lnt}" />
<p:inputText id="lng" value="#{lntLngBean.lng}" />
</h:form>
#{lntLngBean.lnt}
#{lntLngBean.lng}
</body>
</html>
Code: Select all
package beans;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class LntLngBean {
private double lnt = 0;
private double lng = 0;
public LntLngBean() {
}
public void submit(){
System.out.println(lnt + " " + lng);
}
public double getLnt() {
return lnt;
}
public void setLnt(double lnt) {
this.lnt = lnt;
}
public void lint(double lnt){
setLnt(lnt);
}
public void longi(double lng){
setLng(lng);
}
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
@Override
public String toString() {
return "LntLngBean{" +
"lnt=" + lnt +
", lng=" + lng +
'}';
}
}
I appreciate any help, thank you.
P.S.: I know there is a another topic with same title viewtopic.php?t=16475 the topic is old and it didn't helped me.