【问题标题】:javax.el.PropertyNotFoundException in a JSP pageJSP 页面中的 javax.el.PropertyNotFoundException
【发布时间】:2012-06-22 00:42:19
【问题描述】:

我在 JSP 中遇到错误,我无法弄清楚是什么原因造成的。我已经包含了所有适当的库,并且我确保遵循大写/小写的 bean 约定。这是JSP中的相关代码:

<c:forEach items="${relevantData}" var="entry">
     <p>${entry.price}</p>
</c:forEach>

relevantDataList&lt;MyData&gt;。出于这个问题的目的,足以说MyData 是一个包含Double 命名价格的类(具有遵循bean 约定的Getter 和Setter)。当我尝试加载此页面时,我在服务器日志 (Tomcat 7.0.22) 中收到以下错误:

javax.el.PropertyNotFoundException: 
Property 'price' not readable on type java.lang.Double

为什么会出现此错误,如何解决?

【问题讨论】:

  • 访问器方法是公共的,MyData 是内部类吗?
  • 访问器方法都是公开的。课程本身并不公开。

标签: java jsp netbeans jstl el


【解决方案1】:

问题实际上是由MyData 类的可见性引起的。我在 Netbeans 中自动生成了 MyData 类,但我没有注意到类名前面没有关键字 public。这意味着当它到达 JSP 时,它无法读取 MyData 中的属性。

我把类型改成public,问题就解决了。

【讨论】:

  • 我遇到了完全相同的问题。将类型移动到新文件,但忘记添加公共...谢谢!
  • doh,我应该能够弄清楚这一点!感谢这篇文章!
  • 这个问题也是我用UCDectector删除eclipse中不需要的代码后出现的。由于程序无法解释 JSTL 代码,它建议我将类的修饰符更改为“默认”,我做到了。感谢您帮助找到我的问题。
  • 非常感谢,我花了一整天的时间检查 getter 名称;但我无法检查班级的可见性:(
猜你喜欢
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 2018-12-20
  • 1970-01-01
相关资源
最近更新 更多