无法将xhtml与我的ManagedBean通信

时间:2019-07-08 20:10:30

标签: jsf primefaces

我在我的一个按钮上调用了一个函数,但是单击它时没有任何反应,浏览器控制台上没有错误,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;
    }
}

0 个答案:

没有答案