在JSF2-Primefaces3应用程序中未调用Action Listener

时间:2012-10-09 09:59:20

标签: jsf jsf-2 google-maps-api-3 primefaces

我想在我的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()。任何线索的人?

1 个答案:

答案 0 :(得分:2)

将签名更改为

public void retriveCordinates(ActionEvent event){

或只是从actionListener更改为action

另外

最佳做法是仅对getter / setter使用getset前缀,这就是为什么我将getCordinates更改为retriveCordinates