2012-08-25 44 views
0

我將下列代碼用於「Item」對象列表。無法訪問JSTL中的列表

@RequestMapping(value="/garageHome", method=RequestMethod.POST) 
public ModelAndView displayFilteredItems(@ModelAttribute("command") GarageHomeViewModel model){ 
    //PERFORM SEARCH AND RETURN 
    logger.info("Search submitted: " + model.getSearchFilters().getAllTypes()); 
    List<Item> list = itemService.findItems(model.getSearchFilters()); 

    logger.info("Num results: " + list.size()); 

    model.setItems(list); 

    return new ModelAndView("/garageHome", "command", model); 
} 

而下面的代碼通過它在JSTL迭代...

<c:forEach var="item" items="${items}" varStatus="status"> 
         <c:choose> 
          <c:when test="${status.count % 4 == 0 && status.count >= 4}"> 
           </tr> 
           <tr> 
          </c:when> 
         </c:choose> 
         <th> 
          <div> 
           <a href="<c:url value="/productDetails.do?id=${item.getID()}" />"><img class="hotDealImages" src="${item.getImageLink()}" /></a> 
          </div> 
          <div class="hotDealsText">"${item.getDescr()}"</div> 
          <div class="hotDealsText">Bid</div> 
          <div class="hotDealsText">Location</div> 
         </th> 
        </c:forEach> 

但沒有被打印出來。

我嘗試以下代碼以打印出列表中的元素的數量和打印0

<th>Hot Deals ${fn:length($items)}</th> 

但是,在控制檯線路logger.info("Num results: " + list.size());打印「2」。

爲什麼我在JSTL中獲取列表中的元素數爲0?和我的forEach循環有什麼可能是錯誤的?

任何指導將不勝感激。我對Spring MVC 3很陌生。

回答

1

在你的JSP中,你不應該調用${item.getDescr()}而是${item.descr}。這將調用項目類中的getDescr()方法。

+0

在forEach循環中,必須明確提及bean名稱「command」。 即items =「$ {command.items}」 –