Mit JSF 2 Sie sollten in der Lage, dies zu tun:Mit EL 2.2 mit Tomcat 6.0.24
<h:commandButton action="#{myBean.myAction(myParameter)}"/>
, die dann die Aktionsmethode nennen würde, in dem Parameter übergeben (nehme an, es ist ein Integer):
@ManagedBean
@SessionScoped
public class MyBean {
...
public String myAction(Integer myParameter) {
// do something
return null;
}
...
}
Dies funktioniert auf Glassfish v3 perfekt. Allerdings nicht auf Tomcat, erhalten Sie einen ELException anmelde des Parse-Fehler erhalten
Caused by: javax.el.ELException: Error Parsing: ...
Jetzt gibt es eine documented way of making this work using EL 2.2 und Umsetzung des Glassfish durch den el-api
jar im Tomcat lib ersetzt, aber noch ich den gleichen Fehler mit nicht auftreten Glück. Tomcat fängt wirklich an, mich zu frustrieren! JSF2 soll einfacher sein!
Maven POM Fragmente:
<repositories>
<repository>
<id>sun</id>
<url>http://download.java.net/maven/2/</url>
</repository>
<repository>
<id>jboss</id>
<url>http://repository.jboss.com/maven2/</url>
</repository>
</repositories>
...
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
Mehr Info.
Hier ist ein Teil der Stack-Trace, scheint es immer noch eine Apache EL-Implementierung, und nicht die, die ich in lib abgeladen. Ich habe die bestehende el-api.jar
komplett entfernt, die mit Tomcat kam, gibt es eine el-impl.jar
Ich soll irgendwo auch etwas entfernen, das etwas überschreiben könnte?
Was expecting one of:
"}" ...
"." ...
"[" ...
">" ...
"gt" ...
"<" ...
"lt" ...
">=" ...
"ge" ...
"<=" ...
"le" ...
"==" ...
"eq" ...
"!=" ...
"ne" ...
"&&" ...
"and" ...
"||" ...
"or" ...
"*" ...
"+" ...
"-" ...
"/" ...
"div" ...
"%" ...
"mod" ...
at org.apache.el.parser.ELParser.generateParseException(ELParser.java:2142)
at org.apache.el.parser.ELParser.jj_consume_token(ELParser.java:2024)
at org.apache.el.parser.ELParser.DeferredExpression(ELParser.java:113)
at org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:40)
at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:93)
... 64 more
Dieses Problem ist nicht spezifisch für JSF 2. Es ist JSP-EL 2.2 spezifisch. – BalusC