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')}]”

您的环境不支持使用参数调用方法的新 EL 2.2 功能。

EL 2.2 是 Servlet 3.0 的一部分,因此为了使用它,您需要使用 Servlet 3.0 兼容web.xml文件部署到与 Servlet 3.0 兼容的容器(例如 Tomcat 7、Glassfish 3、JBoss AS 6 等)。如果您没有部署到与 Servlet 3.0 兼容的容器,或者没有与 Servlet 3.0 兼容的容器,web.xml那么您根本没有使用 EL 2.2,您将遇到这种异常。

如果您实际上是针对/部署到与 Servlet 2.5 兼容的容器(因此使用 EL 2.1),那么您可以使用 JBoss EL 在 EL 2.1 中拥有类似 EL 2.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 回答