JSP + JavaScript

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>"); 
}   
  %>

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;"); 

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???

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…

[quote=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>"); } %> [/quote]

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(“”);

}

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>

Anderson

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

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

[quote=bana]Anderson

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

[/quote]

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

[code]

TESTE
<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));

[/code][/quote]

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.

posta o HTML gerado que vc esta usando…

naum estou entendo o que esta funcionando

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:

[code]

[/code]

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:

tem como voce postar o codigo aqui?

[quote=cristhianOliveira]
tem como voce postar o codigo aqui?[/quote]
Você viu a data em que este tópico estava sendo “movimentado”?