我在我的一个按钮上调用了一个函数,但是单击它时没有任何反应,浏览器控制台上没有错误,eclpse控制台上没有错误,我错过了什么?我很确定它在xhtml上的东西,但看不到它。我试图在按钮ConsultarGL上调用方法geolocalizarme,但是当我单击它时,没有任何反应,没有错误,没有警告。
这是我的xhtml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
</h:head>
<h:body>
<ui:composition
template="/WEB-INF/includes/templates/mainpagelayoutms.xhtml">
<ui:define name="maincontent">
<f:view>
<h:form id="frmPrueba">
<p:commandButton id="mostrar" value="Mostrar"
onclick="dialogPBWidget.show()" />
<p:dialog id="dialogPB" draggable="true" closable="true"
resizable="false" widgetVar="dialogPBWidget" hideEffect="fade"
showEffect="fade">
<p:panelGrid id="gridsito" columns="2">
<h:outputText value="Origen" />
<p:inputText></p:inputText>
<h:outputText value="Destino" />
<p:inputText></p:inputText>
<p:commandButton type="button"
binding="#{pruebaDA.consultarRuta}" id="consultarOD"
value="Consultar" oncomplete="dialogPBWidget.hide()"
action="#{pruebaDA.consultarRuta}" />
<p:commandButton id="consultarGL" value="Geolocalizarme"
binding="#{pruebaDA.geolocalizar}"
action="#{pruebaDA.geolocalizarme}" type="button"
update="dialogPB" />
</p:panelGrid>
</p:dialog>
</h:form>
</f:view>
</ui:define>
</ui:composition>
</h:body>
</html>
这是我的托管bean:
@ManagedBean
@ViewScoped
public class PruebaDA implements Serializable {
private static final long serialVersionUID = 1L;
InputText origen;
InputText destino;
CommandButton consultarRuta;
CommandButton geolocalizar;
public void geolocalizarme() {
try {
// Ruta armada con el parametro ipprtcerb obtenido de la tabla MS_PARASIST,
// archivo properties, ruta del servicio (contexto)
URL url = new URL(
"https://maps.googleapis.com/maps/api/geocode/json?latlng=3.43722,-76.5225&key=AIzaSyBrEHHKrAOncZlpnd4Fb82Lj6krsAwi3B4");
// Abrimos y configuramos la conexion
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
// Si hay un codigo de respuesta distinto a 200 es porque hubo un error
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP Error code : " + conn.getResponseCode());
}
InputStreamReader in = new InputStreamReader(conn.getInputStream());
BufferedReader br = new BufferedReader(in);
String cadenaLectura;
String cadenaJSONEncriptada = "";
// Se arma la cadena JSON con la respuesta del servicio
while ((cadenaLectura = br.readLine()) != null) {
cadenaJSONEncriptada = cadenaJSONEncriptada.concat(cadenaLectura);
}
conn.disconnect();
// System.out.println(cadenaJSONEncriptada);
JSONObject json = new JSONObject(cadenaJSONEncriptada);
System.out.println(json);
JSONObject json2 = new JSONObject(json.getJSONArray("results").get(0).toString());
System.out.println(json2.get("formatted_address"));
origen.setValue(json2.get("formatted_address"));
} catch (Exception e) {
System.out.println("Exception in NetClientGet:- " + e);
}
}
public void consultarRuta() {
FacesUtils.adicionarMensajeAdvertencia("Hello");
}
public InputText getOrigen() {
return origen;
}
public void setOrigen(InputText origen) {
this.origen = origen;
}
public InputText getDestino() {
return destino;
}
public void setDestino(InputText destino) {
this.destino = destino;
}
public CommandButton getConsultarRuta() {
return consultarRuta;
}
public void setConsultarRuta(CommandButton consultarRuta) {
this.consultarRuta = consultarRuta;
}
public CommandButton getGeolocalizar() {
return geolocalizar;
}
public void setGeolocalizar(CommandButton geolocalizar) {
this.geolocalizar = geolocalizar;
}
}