Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jstl和x2B中使用foreach;javascript?_Javascript_Java_Jsp_Tomcat_Jstl - Fatal编程技术网

如何在jstl和x2B中使用foreach;javascript?

如何在jstl和x2B中使用foreach;javascript?,javascript,java,jsp,tomcat,jstl,Javascript,Java,Jsp,Tomcat,Jstl,我尝试在谷歌地图中添加pin。我有带有坐标和名称的集合${list}项。每个人都把我想要的物品放在地图上。我写了一些代码: <script> function initMap() { <c:forEach items="${list}" var="item"> var cairo = {lat: ${item.geometry.lat}, lng: ${item.geometry.lng}}; var map = new google.maps.Map(d

我尝试在谷歌地图中添加pin。我有带有坐标和名称的集合
${list}
项。每个人都把我想要的物品放在地图上。我写了一些代码:

<script>
function initMap() {
<c:forEach items="${list}" var="item">
    var cairo = {lat: ${item.geometry.lat}, lng: ${item.geometry.lng}};
    var map = new google.maps.Map(document.getElementById('map'), {
        scaleControl: true,
        center: cairo,
        zoom: 10
    });
    var infowindow = new google.maps.InfoWindow;
    infowindow.setContent('${item.name}');
</c:forEach>
}

函数initMap(){
var cairo={lat:${item.geometry.lat},lng:${item.geometry.lng};
var map=new google.maps.map(document.getElementById('map'){
scaleControl:对,
中心:开罗,
缩放:10
});
var infowindow=new google.maps.infowindow;
infowindow.setContent('${item.name}');
}

但是我的代码不正确。此加载项仅映射集合中的一个(最后一个)项


请提供帮助。

您可能需要创建一个要映射的标记点

function initMap() {

var cairo =new google.maps.LatLng(38.54,77.02); 

var map = new google.maps.Map(document.getElementById('map'), {
    scaleControl: true,
    center: cairo,
    zoom: 10
});

<c:forEach items="${list}" var="item">

var infowindow = new google.maps.InfoWindow;

infowindow.setContent('${item.name}');

var myLatlng = new google.maps.LatLng(${item.geometry.lat}, ${item.geometry.lng});

 var marker = new google.maps.Marker({
    position : myLatlng,
    map : map,
    icon : 'img/icon.png' 
    title:${item.name}
   }); 
   google.maps.event.addListener(marker, 'click', function() {  
    // map.setZoom(15);  
    // map.setCenter(marker.getPosition());  
     infowindow.open(map, marker);  
    });  
  </c:forEach>

 }
函数initMap(){
var cairo=new google.maps.LatLng(38.54,77.02);
var map=new google.maps.map(document.getElementById('map'){
scaleControl:对,
中心:开罗,
缩放:10
});
var infowindow=new google.maps.infowindow;
infowindow.setContent('${item.name}');
var mylatng=new google.maps.LatLng(${item.geometry.lat},${item.geometry.lng});
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图,
图标:“img/icon.png”
标题:${item.name}
}); 
google.maps.event.addListener(标记'click',函数(){
//map.setZoom(15);
//map.setCenter(marker.getPosition());
信息窗口。打开(地图、标记);
});  
}

我用过这种方法,而且很有效。我希望这有帮助

 <script type="text/javascript">
    /* Markers information
       KONUME & KONUMB = latLng & numbers in database
       numbers can be left unquoted. */
    var markers = [
       <c:forEach var="row" items="${result.rows}">
                   ['<c:out value="${row.aciklama}" />',
                     <c:out value="${row.KONUME}" />,
                     <c:out value="${row.KONUMB}" />,
                     <c:out value="${row.EVID}" />,
                    '<c:out value="${row.aptadi}" />',
                    '<c:out value="${row.mahalle}" />',
                    '<c:out value="${row.sokak}" />',
                    '<c:out value="${row.durumu}" />',
                    '<c:out value="${row.metrekare}" />',
                    '<c:out value="${row.fiyat}" />',
                    '<c:out value="${row.odasayisi}" />'],
        </c:forEach>   ];  

     var map;
     /*<body onload="initialize()">*/
     function initialize() {

        var latlng= new google.maps.LatLng(38.675124,39.217375);

        var mapOptions = {
          center: latlng,
          zoom: 15,
          mapTypeId: google.maps.MapTypeId.HYBRID
        };
        map = new google.maps.Map(document.getElementById('map_canvas'),
            mapOptions);
        for( i = 0; i < markers.length; i++ ) {
           var position = new google.maps.LatLng(markers[i][1],markers[i][2]);

           marker = new google.maps.Marker({
           position: position,
           map: map,
           title: markers[i][0],
           icon:image
        });
     }
</script>

/*标记信息
KONUME&KONUMB=数据库中的latLng和数字
数字可以不加引号*/
变量标记=[
['',
,
,
,
'',
'',
'',
'',
'',
'',
''],
];  
var映射;
/**/
函数初始化(){
var latlng=新的google.maps.latlng(38.675124,39.217375);
变量映射选项={
中心:拉特林,
缩放:15,
mapTypeId:google.maps.mapTypeId.HYBRID
};
map=new google.maps.map(document.getElementById('map_canvas'),
地图选项);
对于(i=0;i
MyProjects


非常简单,是吗?请注意,在变量周围仍然需要这些单引号;对于Java/JSP,不是这样,但是对于JavaScript!只有纯数字或布尔变量可以不带引号


另请参见

在浏览器中右键单击页面,选择“查看源代码”。仔细查看。最终的JS代码应该是什么样的?一旦您弄清楚了,只需重写JSP/JSTL,使其生成所需的JS代码输出。