2009-08-26 8 views
8

Wie lautet die Syntax für den Aufruf von list.size() in einer JSF 2.0 Facelets-Vorlage (z. B. mit einem h: outputText-Element)?Wie rufen Sie List.size() von einer JSF 2.0 Facelets Vorlage auf?

+0

Mögliche doppelte: http://stackoverflow.com/questions/206161/jsf- list-length – seth

+0

@seth - Obwohl das eine vernünftige Antwort enthält (das sollte mit JSF 2.0 funktionieren, obwohl die Antwort älter ist), stelle ich diese Frage speziell, um herauszufinden, ob es irgendwelche Updates für JSF 2.0 gibt, die sich auswirken könnten die Lösung. :) – jsight

Antwort

22

Wie wäre es damit:

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

Sie finden functions taglib in Ihrer JSF-Seite (URI: http://java.sun.com/jsp/jstl/functions) verweisen müssen.

5

Es ist kein Problem mit JSF 2.0 genau. Die JSF-Spezifikation erfordert weiterhin eine Klasse, die der Bean-Spezifikation entspricht. Die Sammelklassen tun das nicht mit der .size() Methode. Es müsste immer noch .getSize() sein. Angesichts der Notwendigkeit für einen "Standard" -Weg auf die Klassenwerte zuzugreifen, kommen wir in JSF nicht so bald herum. Jemand muss die Sammelklassen reparieren.

+0

IC ... Ich hatte gehofft, dass sie die Ausdruckssyntax überarbeitet haben, um Methodenaufrufe zu erlauben. Es könnte missbraucht werden, aber es würde leicht um solche Fälle gehen. :) Ich verstehe immer noch nicht, warum der Collection-Class-Designer sich dafür entschieden hat, die Dinge so zu machen. – jsight

5

Versuchen Sie einfach #{myBean.myList.size()}

+2

Das würde mit Standard el nicht funktionieren. Es gibt jedoch el-Erweiterungen (wie jboss el), die diese Notation erlauben. –

+2

Dies funktioniert auf jedem Java EE 6 Application Server – Lincoln

+0

Offensichtlich ist dies nicht der Fall (zu meinem Erstaunen): siehe http://community.jboss.org/thread/173971 – Kawu

2

Hinweis: Die genaue Namensraum für "fn" wird wie folgt ergänzt:

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