0

引数をリスナーメソッドに渡すにはどうすればよいですか?

私はこのように試しました:

<p:poll interval="3" listener="#{vehicleController.onPoll('12')}"
    update="vehicleDataList"/>

<p:poll interval="3" listener="#{vehicleController.onPoll(vehicle.vehicleLicense)}"
    update="vehicleDataList"/>

ただし、次の例外がスローされます。

javax.servlet.ServletException: /monitorVehicles/vehiclesList.xhtml
Failed to parse the expression [#{vehicleController.onPoll('12')}]

どうすればこれを達成できますか?

4

2 に答える 2

5

この例外を取得する「式[#{vehicleController.onPoll('12')}]の解析に失敗しました」

ご使用の環境は、引数を使用してメソッドを呼び出すという新しいEL2.2機能をサポートしていません。

EL2.2はサーブレット3.0の一部であるため、これを利用するには、サーブレット3.0互換web.xmlファイルを使用してサーブレット3.0互換コンテナ(Tomcat 7、Glassfish 3、JBoss AS 6など)にデプロイする必要があります。サーブレット3.0互換のコンテナにデプロイしない場合、またはサーブレット3.0互換のコンテナweb.xmlがない場合は、EL 2.2をまったく使用していないため、この種の例外が発生します。

実際にサーブレット2.5互換コンテナをターゲット/デプロイしている場合(したがってEL 2.1を使用している場合)、JBossELを使用してEL2.1の新しいEL2.2のような機能を使用できます。

参照:

于 2013-03-22T12:38:31.277 に答える
1

JSF 2の場合:

リスナーが文字列を期待している場合:

"#{vehicleController.onPoll('11')}"

public void onPOll(String s){

}

リスナーがintを期待している場合:

"#{vehicleController.onPoll(11)}"
public void onPoll(int i){

}
于 2013-03-22T12:22:20.263 に答える