我试图在我的JSF-2/Primefaces-3应用程序中获得纬度和经度。我使用以下代码:
XHTML
<h:inputText id="address" value="#{nyBean.address}" />
<p:remoteCommand name="rmtCommandGeocoder" actionListener="#{myBean.getCordinates}" />JAVA脚本
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()
}]);
}
});
}菜豆
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()没有被调用。伙计们有线索吗?
发布于 2012-10-09 10:14:36
将签名更改为
public void retriveCordinates(ActionEvent event){或者只是从actionListener变成action
也是
最佳实践是只对getter/setter使用get或set前缀,这就是为什么我将getCordinates改为retriveCordinates的原因。
https://stackoverflow.com/questions/12797474
复制相似问题