0

在 JSP 页面上,我正在这样做,${records.size} 其中记录是Set类型的。然后我收到这个错误。我检查了文档和size()方法在org.hibernate.collection.internal.PersistentSet. 那么这个错误的可能原因是什么?

4

1 回答 1

2

语法${records.size}基本上告诉 EL 打印 bean 标识的size 属性(而不是方法!)${records}。当 EL 需要获取某个属性时,它会在 bean 后面的类中查找 getter 方法。因此,当属性名称是size预期的 getter 方法时getSize()。如果没有此方法,那么您将面临当前面临的异常。另请参见javax.el.PropertyNotFoundException: Property 'foo' not found on type com.example.Bean

确实,org.hibernate.collection.internal.PersistentSet 没有方法getSize()。即它确实根本没有该size属性。所以这个例外是完全正确的。

基本上,您想调用该size()方法,而不是size属性后面的 getter 方法。相应地修复您的 EL 表达式:

${records.size()}
于 2019-12-23T14:16:20.913 回答