1

我的 jsp 页面中有一个简单的 img 元素,它必须使用放置在 webapp 上下文外部的图像作为源...

我做了这样的事情:(从 servlet 生成并使用 JSTL 设置的路径)

<img src="C:/somewhere/32x32/userXX.png" class="member-box-avatar">

但我总是得到的是http://myhost//myapp/C:/somewhere/32x32/userXX.png,所以图像没有出现,有没有办法解决这个问题?

我正在使用 tomcat6 作为服务器,我已经尝试过正斜杠和反斜杠

相关代码部分:

     <c:choose>
            <c:when test="${empty guest}">
    <img src="${foto}${user.username}.png" class="member-box-avatar" />
            </c:when>
            <c:otherwise>
<img src="img/guest.png" class="member-box-avatar" />                                        
            </c:otherwise>
        </c:choose>

${foto} 包含绝对路径“C:\mypath\32x32\”(我尝试过任何类型的斜杠组合)

4

2 回答 2

0

利用

<img src="<%=request.getContextPath()%>/your/image/dir/image.png">

如果它托管在您的应用程序上下文中。

否则使用

1.IFrame渲染其他图片的图片url

2.使用Ajax/jQuery异步渲染图片

于 2013-01-16T11:51:08.483 回答
0

为此,我已经挣扎了好几个小时。我用这个技巧使它起作用。

<a href="edit?action=showImageFull&url=C:/Users/Noir/Desktop/WorkSpaceEclipseNeu/w_mvc_3/WebContent/imgfolder/${imgageimage.time}.jpg" target="_parent">
<img  src="http://localhost:8080/w_mvc_3/edit?action=showImageFull&url=C:/Users/Noir/Desktop/WorkSpaceEclipseNeu/w_mvc_3/WebContent/imgfolder/${imgageimage.time}-thumb.jpg"width="150" height="100">

在您的 Java 环境中

String action = request.getParameter("action");

    if(action.equals("showImageFull")) {            
        try {
             String url = request.getParameter("url");

                response.setContentType("image/jpeg");  
                ServletOutputStream out;  
                out = response.getOutputStream();  
                FileInputStream fin = new FileInputStream(url);  

                BufferedInputStream bin = new BufferedInputStream(fin);  
                BufferedOutputStream bout = new BufferedOutputStream(out);  
                int ch =0; ;  
                while((ch=bin.read())!=-1)  
                {  
                bout.write(ch);  
                }  

                bin.close();  
                fin.close();  
                bout.close();  
                out.close();  

        } catch (BookNotFoundException e) {
            RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/error.jsp");
            dispatcher.forward(request, response);
        }               
    }

这是为了显示缩略图和显示完整图像。我希望它有所帮助。

于 2014-11-06T19:51:26.573 回答