メソッド式のパラメータを渡す方法 – JSF 2.0
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]