a4j:commandLink
或a4j:commandButton
的事件顺序是什么?
它是正确的:onclick
-> actionListner
-> oncomplete
-> reRender
?
reRender
在oncomplete
之前吗?
action
何时发生?
当最终用户单击生成的HTML元素时,首先调用onclick
JavaScript。当JavaScript代码没有返回false
时,那么JSF端所有相关的ActionListener
实现将按照它们与组件关联的顺序被调用。如果侦听器没有抛出任何异常,那么将调用真正的action
。当action
返回一个成功的响应时,reRender
中指定的组件将在客户端更新。最后将调用oncomplete
JavaScript。
如果你在客户端和服务器端都有调试器,并且知道如何使用它,那么跟踪你自己是很容易的。我强烈推荐客户端使用Firebug,服务器端使用Eclipse。当然,您也可以使用alert()
s或System.out.println()
s进行穷人调试。