javax.el.PropertyNotFoundException:类'java.lang.String'没有该属性
问题内容:
我正在创建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>
但是推荐的解决方案不起作用:(
问题答案:
也许检查您的taglib导入:
旧
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
新
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
您的Product
课程及其获取者是否可访问?我广义上讲是这样public
吗?
参见http://forum.springsource.org/showthread.php?58420-Problem-with-
javax.el.PropertyNotFoundException
。