> <c:out > value="${creditApplicationListDto.displayProducts[${key}]}"/>,
I would return a collection from teh DTO for only true values. The reason is JSTL cannot invoke the keySet() method on the Map (Since the method doesn't confine to JavaBean specification) public Collection getDisplayProducts() { Collection c = new ArrayList(); if(Boolean.TRUE.equals(this.getBusinessLine())){ c.add("label.applist.bln"); } if(Boolean.TRUE.equals(this.getBusinessCard())){ c.add("label.applist.bcard"); } if(Boolean.TRUE.equals(this.getSecuredCard())){ c.add("label.applist.seccard"); } if(Boolean.TRUE.equals(this.getEquipmentExpress())){ c.add("label.applist.equipmentExpress"); } if(Boolean.TRUE.equals(this.getSbaLineOfCredit())){ c.add("label.applist.sBALineOfCredit"); } if(Boolean.TRUE.equals(this.getSbaTermLoan())){ c.add("label.applist.sBATermLoan"); } if(Boolean.TRUE.equals(this.getBusinessLoan())){ c.add("label.applist.BusinessLoan"); } if(c.size() < 1 ) { c.add("label.applist.NoProducts"); } return c; } <c:forEach items="${creditApplicationListDto.displayProducts}" var="product" varStatus="status"> <c:choose> <c:when test="${not status.last}"> <c:out value="${product}"/>, </c:when> <c:otherwise> <c:out value="${product}"/> </c:otherwise> </c:choose> </c:forEach> Assuming that "label.applist.*" is only a key to the actual label in the properties file you might want to use <fmt:message/> to render the actual label --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]