Avec JSF 2, vous devriez être en mesure de le faire:Utiliser EL 2.2 avec Tomcat 6.0.24
<h:commandButton action="#{myBean.myAction(myParameter)}"/>
qui serait alors appeler la méthode d'action, en passant dans le paramètre (en supposant qu'il est un entier):
@ManagedBean
@SessionScoped
public class MyBean {
...
public String myAction(Integer myParameter) {
// do something
return null;
}
...
}
Cela fonctionne parfaitement sur Glassfish v3. Cependant pas sur Tomcat, vous obtenez une notification ELException de l'erreur d'analyse syntaxique
Caused by: javax.el.ELException: Error Parsing: ...
Maintenant, il y a une documented way of making this work using EL 2.2 et la mise en œuvre de Glassfish en remplaçant le pot el-api
dans le répertoire lib Tomcat, mais je reçois toujours la même erreur se produit sans la chance. Tomcat commence vraiment à me frustrer! JSF2 est destiné à être plus facile!
fragments Maven POM:
<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>
Plus d'infos.
Voici une partie de la trace de la pile, il semble qu'elle utilise encore une implémentation Apache EL, et non celle que j'ai jeté dans lib. J'ai complètement enlevé le el-api.jar
existant qui est venu avec Tomcat, y at-il un el-impl.jar
je suis destiné à enlever quelque part aussi qui peut être quelque chose de surcharger?
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
Ce problème n'est pas spécifique à JSF 2. C'est JSP-EL 2.2 spécifique. – BalusC