JSP + JavaScript

15 respostas
A

Estou usando a API do google map para exibir o mapa e marcar alguns pontos. Esses pontos que quero marcar estão salvos em uma base de dados oracle. Estou fazendo uma página JSP que busca no banco esses pontos e dentro dessa parte em JSP preciso jogar a função javascript que marca os pontos. Mas quando faço usando o out.println(""); não dá certo.

O código está assim:

<%
    String lat="";
    String longi="";
    OracleDataSource ods; 
  	Connection conexao = null; 
  	ods = new OracleDataSource(); 
  	ods.setURL("jdbc:oracle:thin:system/teste@lab6-04:1521:orcl"); 
	conexao = ods.getConnection(); 
	Statement stmt= conexao.createStatement();
  	PreparedStatement stmt2 = conexao.prepareStatement("SELECT lat, longi FROM pontos");
  	ResultSet rs=stmt2.executeQuery();
    while(rs.next()) {
	lat = rs.getString("lat");
	longi = rs.getString("longi");
                out.println("<script>var point = new GLatLng(lat,longi);</script>"); 
}   
  %>

15 Respostas

K

Anderson, eu não consegui entender direito o que você realmente quer fazer

Vi algumas coisas no seu código que me chamaram a atenção:

  1. Voce ta fugindo o conceito de orientação a objeto implementando codigo java na jsp. Para isso servem as classes, servlets…

  2. Porque vc utiliza Statement e PreparedStatement no mesmo bloco de código? Um só resolveria seu problema

  3. Esse aqui é a sua dúvida…
    você está mandando imprimir no console uma variavel que está sendo instanciada e você ainda coloca entre tag scritp.

Qual é a sua intenção de colocar entre <script></script>???

Isso realmente não vai funcionar, será que vc queria usar scriptlet? Ou voce está tentando usar javascript para mostra os dados como alertas?

out.println("&lt;script&gt;var point = new GLatLng(lat,longi);&lt;/script&gt;");
A

O que quero é chamar uma função javascript dentro do JSP. Estou usando o jsp para conectar com o banco. Tenho a função javascript para exibir pontos em um mapa e tenho que chamar ela dentro do jsp. Conseguiu entender agora???

A

Cara pode ser o sistema de coordenadas que vc esta usando… ae vai dos dados que vc adicionou tipo SAD69, Corrego Alegre e por ae vai

outra coisa vc cadastrou sua maquina para obter a API do google??

caso vc esteja usando um roteador para acesso a chave de ter o ip do roteador

faça um teste basico e ve o que acontece…

B

AndersonDutra:
Estou usando a API do google map para exibir o mapa e marcar alguns pontos. Esses pontos que quero marcar estão salvos em uma base de dados oracle. Estou fazendo uma página JSP que busca no banco esses pontos e dentro dessa parte em JSP preciso jogar a função javascript que marca os pontos. Mas quando faço usando o out.println(""); não dá certo.

O código está assim:

<% String lat=""; String longi=""; OracleDataSource ods; Connection conexao = null; ods = new OracleDataSource(); ods.setURL("jdbc:oracle:thin:system/teste@lab6-04:1521:orcl"); conexao = ods.getConnection(); Statement stmt= conexao.createStatement(); PreparedStatement stmt2 = conexao.prepareStatement("SELECT lat, longi FROM pontos"); ResultSet rs=stmt2.executeQuery(); while(rs.next()) { lat = rs.getString("lat"); longi = rs.getString("longi"); out.println("<script>var point = new GLatLng(lat,longi);</script>"); } %>

oi tente usar


while(rs.next()) {

lat = rs.getString(lat);

longi = rs.getString(longi);

// out.println(“”);

out.println(“”);

}


while(rs.next()) {

lat = rs.getString(lat);

longi = rs.getString(longi);

// out.println(“”);

out.println(“”);

}

A

Não deu certo. Ele aparece concluido mais não aparece o mapa. Vou tentar ver aqui qual o erro.

A
<html>
<head>
	<title>TESTE</title>
	<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=SUACHAVEAKI" type="text/javascript"></script>
</head>
<body>
	<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>

	<div style="width:100%; height:100%" id="map"></div>
	<script defer="defer" type="text/javascript">
    var map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl());
	map.setCenter(new GLatLng(-3.7503930643471297, -38.50778644540923), 14);

	// Create our "tiny" marker icon
	var icon = new GIcon();
	icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);

var point1	= new GLatLng(	-3.633443534326	,	-38.475555555556	);map.addOverlay(new GMarker(point1	, icon));
 
  </script>
</body>
</html>
B

Anderson

eu testei codigo que vc postou, e apareceu o mapa.

A

cuidado vc podera ter problemas em relacao ao srid da tabela…

A

bana:
Anderson

eu testei codigo que vc postou, e apareceu o mapa.

Vc testou aquele lá de cima?? O que postei na pergunta??

A
andrericarte:
AndersonDutra:
Não deu certo. Ele aparece concluido mais não aparece o mapa. Vou tentar ver aqui qual o erro.
<html>
<head>
	<title>TESTE</title>
	<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=SUACHAVEAKI" type="text/javascript"></script>
</head>
<body>
	<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>

	<div style="width:100%; height:100%" id="map"></div>
	<script defer="defer" type="text/javascript">
    var map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl());
	map.setCenter(new GLatLng(-3.7503930643471297, -38.50778644540923), 14);

	// Create our "tiny" marker icon
	var icon = new GIcon();
	icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);

var point1	= new GLatLng(	-3.633443534326	,	-38.475555555556	);map.addOverlay(new GMarker(point1	, icon));
 
  </script>
</body>
</html>

Esse código que vc colocou aqui é o que eu estou usando. Só que o meu eu uso jsp para conectar com o banco e lá no banco eu pego os pontos para marcar no mapa. O problema é jogar essa função point1 dentro do JSP que não está reconhecendo.

A

posta o HTML gerado que vc esta usando…

naum estou entendo o que esta funcionando

A

Esqueci de ver o html gerado. Agora que vc falou eu fui ver e ele repete a função mas ele não passa o valor. Aqui o trecho do script:

<script language=javascript>
  function load() {
      if (GBrowserIsCompatible()) {
   
    var map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
    //map.setCenter(new GLatLng(37.4419, -122.1419), 13);
    map.setCenter(new GLatLng(-23.133301,-45.513451), 13);
   	var icon = new GIcon();
	icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);
	    }
  }	
<script>var point = new GLatLng('+ lat +','+longi+'>;</script>
<script>var point = new GLatLng('+ lat +','+longi+'>;</script>
<script>var point = new GLatLng('+ lat +','+longi+'>;</script>
<script>var point = new GLatLng('+ lat +','+longi+'>;</script>
<script>var point = new GLatLng('+ lat +','+longi+'>;</script>
<script>var point = new GLatLng('+ lat +','+longi+'>;</script>
<script>var point = new GLatLng('+ lat +','+longi+'>;</script>


	
</script>
A

Muito Obrigado pela ajuda de vcs aí do fórum. Resolvi deste jeito:

while(rs.next()) { lat = rs.getString("lat"); longi = rs.getString("longi"); cont++;%> var point = new GLatLng(<%=lat %>,<%=longi %>); map.addOverlay(new GMarker(point,icon)); <%}%>

Abri o while, fechei a parte jsp, coloquei o código javascript reabri a tag jsp, terminei o while e fechei a tag jsp. Agora vou arrumar a parte estrutural do código. Vou colocar aquela conexão em um java e jogar em um servlet. Brigadão!!! :smiley:

C

tem como voce postar o codigo aqui?

D

cristhianOliveira:

tem como voce postar o codigo aqui?

Você viu a data em que este tópico estava sendo “movimentado”?

Criado 8 de fevereiro de 2007
Ultima resposta 18 de jul. de 2013
Respostas 15
Participantes 6