Rufen Sie direkte Methoden oder Methoden mit Argumenten / Variablen / Parametern in EL auf
Wie kann ich in JSF 2.0 aufrufen direkten Methoden oder Methoden mit Argumenten /Variablen /Parameter in der EL?
Beispielsweise abrufen der Liste Größe im EL:
<h:outputText value="#{bean.list.size()}" />
Oder den Aufruf einer action-Methode mit Argumenten:
<h:commandButton value="edit" action="#{bean.edit(item)}" />
Diese scheint nicht zu funktionieren, in meiner Umgebung. Es scheint nicht, wie Klammern.
javax.el.ELException: Fehler beim Parsen: #{bean.Liste.size()}
com.Sonne.el.parser.ParseException: Begegnet Ist "("
Kommentar zu dem Problem
doppelte? stackoverflow.com/questions/206161
InformationsquelleAutor der Frage DD. | 2010-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
In EL standard vor EL 2.2 von Java EE 6 können Sie nicht direkt aufrufen von Methoden wie
#{bean.method()}
noch Methoden aufgerufen werden, die mit Argumenten wie#{bean.method(arg1, arg2)
.Wenn ein Upgrade auf eine EL 2.2 /Java-EE-6-konformen container (Tomcat 7, Glassfish 3, JBoss AS 6, etc) ist nicht eine option, und Sie sind derzeit mit EL 2.1 /Java-EE-5 - (Tomcat 6, Glassfish 2, JBoss AS 4, etc), dann Ihre beste Wette ist, um zu installieren Die JBoss-EL. Die JBoss-EL ist ein EL-2.1-konforme Implementierung unterstützt die gleichen Funktionen wie EL 2.2. Installieren von JBoss EL ist eine Frage der Einführung der
jboss-el.jar
in/WEB-INF/lib
und hinzufügen des folgenden in dieweb.xml
werden, vorausgesetzt, Sie sind mit Mojarra:Oder, wenn Sie mit MyFaces:
Alternative für Ihren speziellen Fall ist die Verwendung von JSTL ist
fn:length
:Andere alternative ist das hinzufügen von ein getter, um die Bohne gibt
List#size()
oder in bestimmten Fällen eine benutzerdefinierte EL-Funktion.Bitte beachten Sie also, dass das aufrufen von Methoden mit Argumenten in der EL ist keine JSF 2.0 bestimmte Funktion. Es ist ein EL 2.2 spezifische Funktion. EL 2.2 ist Teil von Java EE 6, JSF 2.0, ist auch ein Teil. So ist es Aussehen JSF 2.0 bestimmte Funktion, ist es aber nicht. JSF 2.0 ist rückwärts kompatibel mit Servlet 2.5 /EL 2.1 welche fehlt diese Funktion. Auf der anderen Seite, JSF 1.x wird nach vorne kompatibel mit Servlet 3.0 /EL 2.2, so würde es auch möglich sein diese Funktion in JSF 1.x dann, auch mithilfe der JBoss-EL auf Servlet 2.5 /EL 2.1.
InformationsquelleAutor der Antwort BalusC
Antwort von Arend sehr gut, außer der Teil über die Eingabe von context-param für Mojarra: hinzufügen, dass web.xml eigentlich bricht es auf JBoss 7. Versuchen Sie, mithilfe der JBoss-EL, ohne die Eingabe von nichts in web.xml.
InformationsquelleAutor der Antwort Raymond Naseef
BalusC s Antwort ist richtig, aber wenn Sie maven, Sie soll ausschließen, dass die el-api 1.0 transitive Abhängigkeit wie diese:
InformationsquelleAutor der Antwort Hrotkó Gábor