2016-05-16 97 views
1

我有一個JSP文件,它有我的JSP代碼和Javascript代碼,JSP基本上有這個巨大的arrayList,它具有我需要使用JavaScript在Google地圖對象上繪製的地理座標,沒有版本的谷歌地圖,支持JSP本身,這裏是我的代碼:使用javascript訪問JSP對象

 <% 
     List<LandCoordinates> annex = new LandCordinatesDAO().getLandCoordinates(); 
        for (LandCoordinates an : annex) { 
         out.print(an.getX()); 
         out.print(an.getY()); 
        } 
     %> 


<script> 


function drawLandMarkCenter(x, y) 
{ 
var plotCenter = {lat: x, lng: y}; 
var map = new google.maps.Map(document.getElementById('map'), { 
zoom: 18, 
center: plotCenter, 
mapTypeId: google.maps.MapTypeId.TERRAIN 
}); 

return map; 

}

我如何可以訪問List<LandCoordinates> annex元素從我的javascript代碼?

+0

你不能。只有您可以訪問的值。 –

+0

如果您將值輸出到具有唯一ID的隱藏html元素中,那麼您將能夠從JS –

+0

訪問它們,請給我一個示例,我對JSP非常陌生,並且遇到了嚴重的問題,我花了最後4小時閱讀關於如何使這可能,但無濟於事。 – Chrometobia

回答

0

我建議你將數據從JavaScript中分離出來,這樣你就可以避免使用腳本並獲得更乾淨和更易維護的代碼。

首先,創建生成與LandCoordinates一個JSON文件,像這樣的一個servlet:

StringJoiner sj = new StringJoiner(",", "[", "]"); 
for (LandCoordinates an : annex) 
{ 
    sj.add("{\"posX\":" + an.getX() + "," 
      + "\"posY\":\"" + an.getY() +"\"}"); 
} 
response.getWriter().println(sj.toString()); 

然後創建一個使用AJAX來得到這個JSON,做任何你需要一個靜態的JavaScript。如果你顯示整個代碼,我可以幫你。