我想在我的JSF-2 / Primefaces-3应用程序中获取Latitude和Longitude。我使用以下代码:
XHTML
<h:inputText id="address" value="#{nyBean.address}" />
<p:remoteCommand name="rmtCommandGeocoder" actionListener="#{myBean.getCordinates}" />
JAVA SCRIPT
function geocoder() {
var geocoder = new google.maps.Geocoder();
var address = document.getElementById("address").value;
geocoder.geocode({
'address' : address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// Calls the remoteCommand "rmtCommandGeocoder",
// passing the coordinates to map of parameters
rmtCommandGeocoder([ {
name : 'latitude',
value : results[0].geometry.location.lat()
}, {
name : 'longitude',
value : results[0].geometry.location.lng()
}]);
}
});
}
BEAN
public void getCordinates() {
FacesContext context = FacesContext.getCurrentInstance();
Map<String, String> parameterMap = context.getExternalContext().getRequestParameterMap();
double latitude = Double.parseDouble((String) parameterMap.get("latitude"));
double longitude = Double.parseDouble((String) parameterMap.get("longitude"));
}
这里的问题是没有调用getCordinates()。任何线索的人?
答案 0 :(得分:2)
将签名更改为
public void retriveCordinates(ActionEvent event){
或只是从actionListener
更改为action
另外
最佳做法是仅对getter / setter使用get
或set
前缀,这就是为什么我将getCordinates
更改为retriveCordinates