在JSP页面上,我这样做${records.size}
其中记录为Set
类型。然后我收到此错误。 我检查了文档,size()
方法在org.hibernate.collection.internal.PersistentSet
中可用。 那么此错误的可能原因是什么?
语法${records.size}
基本上告诉EL打印由${records}
标识的bean的size
属性(不是方法!当 EL 需要获取属性时,它将在 bean 后面的类中查找 getter 方法。因此,当属性名称size
时,预期的 getter 方法是getSize()
。如果缺少此方法,那么您将面临当前面临的异常。另请参阅 javax.el.PropertyNotFoundException: Property 'foo' not in type com.example.Bean。
事实上,org.hibernate.collection.internal.PersistentSet
没有getSize()
的方法,也就是说,它确实根本没有size
属性。所以例外是完全正确的。
基本上,您希望调用size()
方法,而不是size
属性后面的 getter 方法。相应地修复 EL 表达式:
${records.size()}