org.hibernate.collection.internal.PersistentSet'没有属性'size'

时间:2019-12-23 14:01:39

标签: jsp el propertynotfoundexception

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

1 个答案:

答案 0 :(得分:1)

语法${records.size}基本上告诉EL打印size标识的bean的${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()}