Я создаю приложение Sample Spring MVC.В моем классе Controller я определил вот так:
Map<String, Object> myModel = new HashMap<String, Object>();
myModel.put("now", now);
myModel.put("products", this.productManager.getProducts());
return new ModelAndView("hello", "model", myModel);
Когда я вставил следующую часть в мой файл JSP, я получил javax.el.PropertyNotFoundException
исключение
<c:forEach items="${model.products}" var="prod">
<c:out value="${prod.description}"/> <i>$<c:out value="${prod.price}"/></i><br><br>
</c:forEach>
Вот мое полное исключение:
javax.el.PropertyNotFoundException: The class 'java.lang.String' does not have the property 'description'.
Но в моем домене класса private Sting description
свойство имеет публичные геттеры и сеттеры.Этот класс Product
является публичным.
Класс продукта:
public class Product implements Serializable {
private String description;
private Double price;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
}
PS:
Если я использовал это, он работает
<c:forEach items="${model.products}" var="prod" varStatus="status">
<c:out value="${model.products[status.count -1].description}"/> <i>$<c:out value="${model.products[status.count -1].price}"/></i><br><br>
</c:forEach>
Но рекомендуетсярешение не работает :(