0

这是我ui:repeat在 javascript 里面

 <ui:repeat value="#{testController.allItems}" var="item">
        image = '<p:graphicImage width='50px' value='#{imageStreamer.image}' ><f:param name='id' value='#{item.id}' /></p:graphicImage>';
        point = new google.maps.LatLng(#{item.latitude},#{item.longitude});
        createMarker(point, '#{item.name}', '#{item.address}', image);
 </ui:repeat>

testController.allItems返回具有值的实体列表和保存为的图像blob,我正在尝试使用谷歌地图进行商店定位器。createMarker向地图添加标记。

我正在使用BalusC's打印p:graphicImage方式ui:repeat。参考:如何在 ui:repeat 中将 <p:graphicImage> 与 DefaultStreamedContent 一起使用?

这是我的createMarker

function createMarker(latlng, name, address, image) {   
    var html = image+'<br/> <b>' + name + '</b> <br/>' + address;
    var marker = new google.maps.Marker({
        map: map,
        position: latlng
    });
    google.maps.event.addListener(marker, 'click', function() {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
    });
    markers.push(marker);
}

一切正常。我的地图上有标记,当单击标记时,它会向我显示图像和名称+地址。但问题是,当我再次单击标记时,图像消失并且图像显示断开的链接。

是否有另一种方法可以从数据库中检索 blob 图像并使用 javascript 而不是使用 javascript 将其打印为图像p:graphicImage

4

0 回答 0