2014-10-20 75 views
1

我想显示具有图像的细节。其实可能是一个没有形象的人。这里是我的控制器来显示它如何在春天显示存储在数据库中的图像mvc

@RequestMapping(value="/Hows/{categoryId}/{categoryName}",method=RequestMethod.GET) 
public String showHowsCategory(@PathVariable("categoryId")int category,Model model,HttpServletRequest request){ 

    int page = 1; 
    if(request.getParameter("page")!=null) 
     page = Integer.parseInt(request.getParameter("page").toString()); 

    ListHows = showCategoryService.showAllHowInCategory(category,(page- 1)*pageSize,pageSize); 
    for(int i=(page-1)*pageSize;i<pageSize;i++){ 
     byte[] binaryData = ListHows.get(i).getImage(); 
     if(binaryData != null){ 
     try { 
       byte[] encodeBase64 = Base64.encode(binaryData); 
       String base64Encoded = new String(encodeBase64, "UTF-8"); 
       imageList.add(base64Encoded); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
    model.addAttribute("image", imageList); 
    model.addAttribute("howList",ListHows); 

并在jsp视图中使用此代码。但不显示图像。

<c:forEach var="how" items="${howList}" varStatus="counter"> 
      <c:set var="url" value="${how.how}"/> 
       <c:set var="count" value="0" /> 
      <div class="table"> 
      <div style="float: left;margin-left: 10px;"> 
      <c:if test="${how.image != null}"> 
         <img src="data:image/jpeg;base64,${image[count]}" width="150" height="120"/> 
          <c:set var="count" value="${count + 1}" /> 
         </c:if> 
         <c:if test="${how.image == null}"> 
         <img width="150" height="120" src="<c:url value="/resources/images/how.jpg" />"/> 
         </c:if> 
         </div> 

我的问题是什么?

回答

1
<img src="data:image/jpeg;charset=utf-8;base64,${image[count]}" width="150" height="120"/> 

数据将是编码的base64字符串。

+0

当我使用此model.addAttribute(“image”,imageList.get(2))并在jsp视图其工作。 – 2014-10-20 22:39:28

+0

是的,我了解你的情况,但你在另一个列表中使用foreach。 也许你需要把图像的数据放入howList。你可以像这样重现。 当你开始循环时,你的计数总是为零,所以你总是得到$ {image [0]} – 2014-10-20 22:48:54

+0

,但是通过这个。为什么要显示一个图像>如何将它放入howList? – 2014-10-20 22:57:37

相关问题