2012-08-25 6 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> 

그러나 아무것도 인쇄됩니다.

나는리스트의 원소의 개수를 인쇄하려면 다음 코드를 시도하고 그 콘솔의 라인 logger.info("Num results: " + list.size()); 인쇄 "2"0

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

인쇄하지만.

JSTL에서 목록의 요소 수가 0으로되는 이유는 무엇입니까? 내 forEach 루프에서 무엇이 잘못 될 수 있습니까?

모든 지침을 매우 높이 평가할 것입니다. 나는 Spring MVC 3를 처음 접하기 때문에 새로운 것이다.

답변

1

JSP에서는 ${item.getDescr()}을 호출하지 말고 ${item.descr}을 호출해야한다. 그러면 해당 항목의 클래스에 getDescr() 메쏘드가 호출됩니다.

+0

콩 이름 "command"에 더하여 forEach 루프에서 명시 적으로 언급해야합니다. 즉 items = "$ {command.items}" –

관련 문제