JSF 2.0以来、 ”

#\ {bean.method(param)}

“のようなメソッド式でパラメータ値を渡すことができますが、この機能はTomcatサーバー上で ”

EL解析エラー

“を引き起こします。例えば、


マネージドBean

@ManagedBean(name="order")
@SessionScoped
public class OrderBean implements Serializable{

    public String editAction(String id) {
       //...
    }
}


JSFページ

…​.//…​
<h:commandLink value=”Edit” action=”#{order.editAction(123)}”/>//…​

Tomcatにデプロイすると、次のエラーメッセージが表示されます。

An Error Occurred:
Error Parsing: #{order.editAction(123)}

または

javax.el.MethodNotFoundException

=== 解決策

実際には、このように "** メソッド式のパラメータ** "を呼び出すことは `EL 2.2`の機能であり、デフォルトでTomcatでは** サポートされていません。

この機能を使用するには、http://download.java.net/maven/2/org/glassfish/web/el-impl/2.2/elから "**  el-impl-2.2.jar ** "を取得する必要があります。 -impl-2.2.pom[Java.net]を開き、プロジェクトの依存フォルダに置きます。

__File:pom.xml__

<dependency>
 <groupId>org.glassfish.web</groupId>
 <artifactId>el-impl</artifactId>
 <version>2.2</version>
</dependency>

完了すると、TomcatはJSF 2.0 Webアプリケーションのメソッド表現パラメータ** をサポートできるはずです。

link://tag/jsf2/[jsf2]link://tag/parameter/[parameter]