如何在 JSF 表达式语言中获取列表的长度?

2022-08-31 08:57:51

如何使用 JSF EL 表达式获取的长度?ArrayList

#{MyBean.somelist.length}

不起作用。


答案 1

是的,由于Java API创建委员会中的一些天才决定,即使某些类具有成员或属性,它们也不会实现,或者JSF和大多数其他标准要求,您也无法做自己想做的事情。size()lengthgetSize()getLength()

有几种方法可以做到这一点。

一:向 Bean 添加一个返回长度的函数:

In class MyBean:
public int getSomelistLength() { return this.somelist.length; }

In your JSF page:
#{MyBean.somelistLength}

第二:如果你使用的是 Facelets(哦,上帝,你为什么不使用 Facelets!),你可以添加 fn 命名空间并使用 length 函数

In JSF page:
#{ fn:length(MyBean.somelist) }

答案 2

你是说 size() 不是吗?

#{MyBean.somelist.size()}

适用于我(使用具有Jboss EL扩展的JBoss Seam)