# Java Collection an JavaScript übergeben



## y0dA (15. Mai 2007)

Hi!

Gibt es eine Möglichkeit bspw folgendes Format irgendwie an JavaScript zu übergeben:

ArrayList<Object>()

Hier der Code:


```
public ArrayList<Place> getLoadPoints() {
		ArrayList<Place> point = new ArrayList<Place>();
		point.add(new Place ("eiffeltower", "/src/main/webapp/tower.gif", "48.858489", "2.295295" , 17,
		"Eiffel Tower, Paris"));
		point.add(new Place ("goldengate", "/src/main/webapp/resourcegold.gif", "37.81765", "-122.477603" , 14,
				"Golden Gate  Bridge, San Francisco"));
		
		return point;
	}
```

Jsp (JavaScript Teil; "data" wäre die ArrayList):


```
<script type="text/javascript">
  	function loadMorePoints(data) {
		for (var i = 0; i < 3; i++) {
		    var point = new GLatLng(data[i].lat, data[i].lng);
		    map.addOverlay(new GMarker(point));
		    map.openInfoWindow(map.getCenter(),
	}

</script>
```

Es muss nicht eine "ArrayList" sein bin für alles offen.

mfg


----------



## ARadauer (15. Mai 2007)

so würd ich das auf die gache machen:


```
<%
ArrayList data = DataDAO.getLoadPoints(); //oder wo du die Array Liste auch immer her bekommst
%>

<script type="text/javascript"> 
     function loadMorePoints() { 
         <% for(int i = 0; i < data.size(); i++){
                Place temp =  (Place) data.get(i);
         %>

                 var point = new GLatLng(<%= temp.lat %>, <%= temp.lng %> ); 
                 map.addOverlay(new GMarker(point)); 
                 map.openInfoWindow(map.getCenter();
    <% }%>

   } 

</script>
```


hab das jetzt aber nicht getestet.

btw, ich hab da eine frage an die profis, is sowas schön möglich, welche j2ee version muss da am server laufen??


```
function loadMorePoints() { 
         <% for(Place temp :data){%>
                 var point = new GLatLng(<%= temp.lat %>, <%= temp.lng %> ); 
                 map.addOverlay(new GMarker(point)); 
                 map.openInfoWindow(map.getCenter();
    <% }%>

   }
```


----------



## y0dA (15. Mai 2007)

Jo danke für deine "gache" Idee - kanns aber erst morgen testen - hoffe das funzt.

Btw bekomme ich meine ArrayList mittels ajax4jsf.

Vllt. meldet sich ja auch noch ein Veteran und bestätigt deine Idee oder nennt etwas besseres.


----------



## Sanix (15. Mai 2007)

lol wenn du schon JSF verwendest, nutze die Komonente a4j:jsFunction oder so.
Btw. RichFaces bietet eine GoogleMaps Komponente.


----------



## y0dA (16. Mai 2007)

Benutze ich auch!


```
<a4j:jsFunction name="loadPoints" data="#{gmBean.loadPoints}"
				oncomplete="loadMorePoints(data)">
			</a4j:jsFunction>
```

und hier wird eben die ArrayList übergeben und bei "onComplete" befülle ich dann die Google Map von RichFaces! Leider kann ich die Punkte ja nicht im Servlet hinzufügen weil RichFaces das nicht kann bzw. ich nichts dergleichen gefunden hätte.


----------

