【问题标题】:Gmap primefaces not renderingGmap primefaces不渲染
【发布时间】:2017-01-01 07:57:22
【问题描述】:

我正在按 id 进行搜索,在我的主页中我有一个 inputText 和一个 commandButton。当我单击 commandButton 时,它必须使用 inputText 中传递的数字设置 id 并将我重定向到地图页面以跟踪引用此 id 的坐标。因为我必须访问 ManagedBean 来设置 Id 变量,所以我必须通过一个方法重定向到地图页面,该方法返回一个带有页面地址“结果”的字符串。问题是加载页面时地图未呈现。如果地图页面正常访问,没有来自bean的结果,地图加载正确,那么它不是API密钥问题或坐标错误。有谁知道发生了什么或知道任何其他解决方案?

主页:

<ui:composition template="/WEB-INF/template/LayoutPadrao.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

    <ui:define name="titulo">Dashboard</ui:define>

    <ui:define name="corpo">

        <h:form>
        <p:panel
            style="margin-top:0px;margin-left:450px;width:480px;border: none !important;">
            <p:panelGrid id="grid2" columns="2" styleClass="semBorda">
            <p:inputText id="pesquisarGado" size="50" style="height:25px;"
                    value="#{gadoBean.gadoBeanM.name}" required="true"
                    requiredMessage="Digite o código do gado" />
                <p:commandButton action="#{gadoBean.outcome()}"/>
                <p:button outcome="gado/rastrearGado"/> 

                <p:message for="pesquisarGado" display="icon" />


            </p:panelGrid>
        </p:panel>
        </h:form>


    </ui:define>

</ui:composition>

托管豆:

@Named
@SessionScoped

//attributes and other methods

public String outcome() {
        return "gado/rastrearGado";

    }
public void inicializar() {

    GravarPosicao();//method to record coo in the DB
    obterPosicaoPeloId();

}


    public void obterPosicaoPeloId() {
        mapa = new DefaultMapModel();

        tagsCadastradas = new ArrayList<Tag>();
        tagsCadastradas = tagsRep.listarTag();

        this.getTagsCadastradas().size();

        posicoes = new ArrayList<Coordenadas>();

        ultimasPosicoes = new ArrayList<Coordenadas>();

        String id = this.getGadoBeanM().getName();

        cooPorId = coordenadasRep.listarCoords(Long.parseLong(id));
        System.out.println("posicoes: " + cooPorId.getPosData());

        System.out.println("id: " + id);

        coord = new LatLng(cooPorId.getPosLatitude(), cooPorId.getPosLongitude());
        mapa.addOverlay(new Marker(coord, "Gado"));
        lastLong = (float) cooPorId.getPosLongitude();
        lastLat = (float) cooPorId.getPosLatitude();
        center = lastLat + "," + lastLong;
        System.out.println(center);
    }

地图页面:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:o="http://omnifaces.org/ui">
<h:head>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDeF32jO4j5mAORJTcNICT3o8Nz8G0QZIg"
type="text/javascript"></script>
</h:head>
<title>Rastreamento</title>
<f:metadata>
    <f:event listener="#{gadoBean.inicializar}" type="preRenderView" update="@form"/>
</f:metadata>
<h:body>
<h:form>

        <p:panel id="panelMap" style="margin-top:100px;margin-left:410px;width:508px;">
            <p:gmap id="mapa"  
                center="#{gadoBean.center}"
                zoom="9" 
                model="#{gadoBean.mapa}"  
                type="HYBRID" 
                style="width:600px;height:400px"/>

        </p:panel>
    </h:form> 
</h:body>
</html>

【问题讨论】:

标签: java google-maps primefaces


【解决方案1】:

当您使用 commandButton 进行导航时,您必须使用 h:commandButton (JSF) 而不是 p:commandButton (primefaces)。

【讨论】:

    猜你喜欢
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2012-07-04
    • 2017-08-10
    • 1970-01-01
    • 2020-03-01
    相关资源
    最近更新 更多