这是javascript中的ui:repeat
<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
。参考:How to use <p:graphicImage> with DefaultStreamedContent in an ui:repeat?
这是我的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而不是p:graphicImage
将其打印为图像的方法吗?