2011-09-07 46 views
1

我們使用spring和hibernate開發了一個小型web應用程序。我們的應用程序具有圖像和視頻渲染功能,我們將圖像和視頻存儲在數據庫中以longblob格式。
我們正在嘗試使用基於已存在的基於JavaScript的「簡單控件庫」http://www.dynamicdrive.com/dynamicindex4/simplegallery.htm作爲幻燈片顯示這些圖像,這是在互聯網上找到的。將圖像渲染爲數據庫中的幻燈片,並將其存儲爲longblob

我試圖調用一個HTML頁面將由控制器如下被重定向到一個JSP頁面:

var Imagearray1 = [ 
      <c:set var="count" value="0"/> 
      <c:set var="comma" value=","/> 
      <c:forEach items="${imageList}" var="image" varStatus="loop"> 
      <c:set var="count" value="${count + 1}"/> 
       [$.get('imagedisplay.html');,'http://','${image.imageTitle}','${image.imageDescription}']<c:if test="${fn:length(imageList) != count}"> <c:out value="${comma}"/> </c:if>    
      </c:forEach> 
     ]; 

其中圖像列表是從數據庫中的圖像列表。你可以在我提到的鏈接中看到Imagearray1的實際代碼。

如何顯示使用此圖庫的圖像?(或)如果有任何其他方式顯示圖像作爲幻燈片請向我解釋。

回答

0

您需要創建一個servlet,將圖像內容從數據庫流式傳輸到HTTP響應,並沿着一組適當的響應標頭。不尋常的$.get('imagedisplay.html'); ajax調用必須由返回圖像的servlet的URL替換,例如,

var images = [ 
    <c:forEach items="${images}" var="image" varStatus="loop"> 
     ['imageservlet/${image.id}', '', '${image.imageTitle}', '${image.imageDescription}']${!loop.last ? ',' : ''} 
    </c:forEach> 
]; 

地圖上的/imageservlet/*的URL模式,將圖像的servlet和request.getPathInfo()獲得圖像ID(或文件名),最後選擇它作爲InputStream從數據庫中,並將其寫入到響應的OutputStream。你可以在這個答案中找到一個基本的例子:How to retrieve and display images from a database in a JSP page?

+0

謝謝。這是工作。 – RuLeBrEaKeR

+0

不客氣。 – BalusC