2009-08-26 67 views
8

在JSF 2.0 Facelets模板(例如,使用h:outputText元素)中調用list.size()的語法是什麼?如何從JSF 2.0 Facelets模板調用List.size()?

+0

可能重複:http://stackoverflow.com/questions/206161/jsf-列表長度 – seth 2009-08-26 03:44:20

+0

@seth - 雖然這確實包含一個合理的答案(應該與JSF 2.0一起工作,儘管答案早於此答案),但我特別提出這個問題,以確定是否有可能影響JSF 2.0的任何更新解決方案。 :) – jsight 2009-08-26 04:15:04

回答

22

如何:

<h:outputText value="#{fn:length(someBean.someList)}" /> 

你需要引用functions標籤庫中的JSF頁面(網址:http://java.sun.com/jsp/jstl/functions)。

5

這完全不是JSF 2.0的問題。 JSF規範仍然需要一個符合bean規範的類。收集類不會使用.size()方法。它仍然必須是.getSize()。 鑑於需要使用「標準」方法來訪問類值,我們很快就無法在JSF中解決這個問題。有人需要修復集合類。

+0

IC ...我希望他們已經重寫了表達式語法以允許方法調用。它可能會被濫用,但它很容易解決這種情況。 :)我仍然不明白爲什麼收藏類設計師選擇這樣做。 – jsight 2009-08-28 02:41:47

5

試試看#{myBean.myList.size()}

+2

這不適用於標準el。雖然有el擴展(例如jboss el),但它允許這種表示法。 – 2010-08-04 14:10:10

+2

這將適用於任何Java EE 6應用程序服務器 – Lincoln 2011-09-21 21:52:52

+0

顯然情況並非如此(令我驚訝):請參閱http://community.jboss.org/thread/173971 – Kawu 2011-10-25 22:27:55

2

注:的 「FN」 確切的命名空間中加入這樣的:

<html xmlns="http://www.w3.org/1999/xhtml" 
     ... 
     xmlns:fn="http://java.sun.com/jsp/jstl/functions">