【发布时间】:2014-01-28 17:19:43
【问题描述】:
我这样调用客户端函数:invalidateUserSession()。我知道客户端功能已被触发,因为我在 oncomplete 事件中放置了一个警报。出于某种原因,服务器端的方法永远不会被调用。
客户端代码:
<a4j:jsFunction
name="invalidateUserSession"
action="#{billingController.invalidateSession}"
immediate="true"
oncomplete="alert('invalidate');"
/>
服务器端代码:
public void invalidateSession(){
log.info("Invalidation session...");
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
}
【问题讨论】:
-
您在这里使用
immediate有什么原因吗?你试过没有它吗?还要检查指定完整的action="#{billingController.invalidateSession()}是否会有所不同。只是检查一下显而易见的,您已经在其中放置了一个断点并观察到它从未被命中,因此您可以断言“从未被调用”? -
@mabi remove immediate="true" 做到了。发表您的评论作为答案,以便我接受。
标签: javascript jsf richfaces ajax4jsf