我有以下要求。我在显示的页面中单击display链接。我调用javascript函数 displayImage
输入参数为 filename
以及 isDisplay
. 在这个函数中,我生成一个 'img'
标记谁的 src="download?filename=DCS.jpg&isDisplay=true"
.
我希望这个调用连接到hadoop的servlet,得到 bufferedImage
并写入响应 outputstream
.
但是当我动态地生成img标记时,它没有显示图像,甚至没有调用servlet。
如何动态显示?
jsp代码:
<%List<String> filenames = (ArrayList<String>)request.getAttribute("filenames");
if(filenames.size()>0){
for (String filenme : filenames){
%>
<div id="filename">
<a href="javascript:submit('<%=filenme%>', 'false')" onclick="javascript:submit('<%=filenme%>', 'false')"><%=filenme%></a>
</div>
<div id="displink">
<a href="javascript:displayImage('<%=filenme%>', 'true')" onclick="javascript:displayImage('<%=filenme%>', 'true')">Display</a>
</div>
<div id="line"></div>
<% }
}%>
</div>
<% %>
<div id="displayImage">
</div>
javascript代码:
function displayImage(imageName, isDisplay){
var display = document.getElementById('displayImage');
var parameters = "filename="+imageName+"&isDisplay="+isDisplay;
display.innerHTML="<img src=\"download?"+parameters+"\"";
display.style.display="block";
}
servlet代码:
BufferedImage bi = ImageIO.read(fs.open(item.getPath()));
if (isDisplay) {
resp.setContentType("image/"+extn);
OutputStream out = resp.getOutputStream();
ImageIO.write(bi, extn, out);
}
暂无答案!
目前还没有任何答案,快来回答吧!