在JSP

时间:2016-03-12 04:57:29

标签: java jsp jsp-tags

我想知道如何在for循环中的JSP页面中显示图像。从数据库访问图像。下面是我的代码,我希望图像正好是"<img src="<%= product.thumbnail %>"/>"行所在的位置。

我的代码简短而简单:

<%
    for(int i=0; i<keys.length;i++){
        Product product = sdb.getProduct(keys[i].toString());
        out.println( "<p>" + product.title + "    " + "<img src="<%= product.thumbnail %>"/>" + "</p>" );
    }
%>

由于

- 编辑后添加

生成的HTML:

<html>

<body>

<p>Linez    99.99    1</p>
<p>Stax    49.99    3</p>


<p> Order total = 249.96


<form action="order.jsp" method="post">
  <input type="text" name="name" size="20">
  <input type="submit" value="Place Order" />
</form>

<form action="basket.jsp" method="get">
  <input type="hidden" name="emptyBasket" value="yes">
  <input type="submit" value="Empty Basket" />
</form>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

我认为你还有一些工作要做。 img&lt;&gt; tag需要一个URL,并且不能神奇地将数据库blob或类似的转换为URL。

我的方法是:

  • 创建一个servlet,为数据库中的缩略图提供服务,并发布 / myApp / product / thumbnails等网址?productId = 12345
  • 从浏览器测试您的servlet
  • 更改JSP以创建这些URL。
祝你好运。

答案 1 :(得分:0)

  

您需要在代码中使用InputStream,我向您保证这将完美运行。   信息搜索谷歌它。

     

1)a.jsp页面

<img src="image.jsp?imgid=<%=rs.getInt(1)%>" alt="<%= rs.getString("title")%>" style="width:280px; height:320px">
  

2)将以下代码放在另一个jsp页面

int id = Integer.parseInt(request.getParameter("imgid"));//imgid from a.jsp
try {

    String strQuery = "select book_image from tblbooks where id=" + id;
    ResultSet rs = st.executeQuery(strQuery);

    String imgLen = "";
    if (rs.next()) {
        imgLen = rs.getString(1);
    }
    rs = st.executeQuery(strQuery);
    if (rs.next()) {
        int len = imgLen.length();
        byte[] rb = new byte[len];
        InputStream readImg = rs.getBinaryStream(1);
        int index = readImg.read(rb, 0, len);
        st.close();
        response.reset();
        response.getOutputStream().write(rb, 0, len);
        response.getOutputStream().flush();
    }
} catch (Exception e) {
    e.printStackTrace();
}