你好开发人员,我在ZK上设置Timer方法时遇到问题,默认我的.zul页面中的方法是:
<timer id="timer" delay="1000" repeats="false"
onTimer="response.sendRedirect('./Login.zul')" />
但代码是错误的(我认为beacuse('./Login.zul'),如果我尝试(\“./ Login.zul \”),仍显示错误),我尝试在我的控制器页面中构建像这样:
private Timer timer=new Timer( 1000 );
public OTPController() {
timer.setRepeats( true );
timer.setAttribute( "onTimer","response.sendRedirect(\"./Login.zul\")", Timer.COMPONENT_SCOPE );
timer.start();
}
但没有任何事情发生.. :(
任何人都可以帮助我吗?
也许我必须创建java脚本方法或类似的东西? 我仍然试图找到答案,我读过ZK文档,但没有什么可以帮助..
感谢您的关注并抱歉我的英语不好:D
答案 0 :(得分:4)
您可以尝试以下示例
<timer id="timer" delay="1000" repeats="false"
onTimer='Executions.sendRedirect("./Login.zul")' />
答案 1 :(得分:0)
onTimer
是一个不是属性的事件[1]。您应该在Timer组件上使用addEventListener()[2]来添加执行实际sendRedirect的方法。例如。在你的 OTPController 中,你可以做到
<!-- language: lang-js -->
timer.addEventListener(Events.ON_TIMER, new EventListener() {
public void onEvent(Event evt) {
Executions.sendRedirect("./Login.zul"); //refer [3]
}
});
[1] http://books.zkoss.org/wiki/ZK_Component_Reference/Essential_Components/Timer#Supported_Events [2] http://books.zkoss.org/wiki/ZK_Developer's_Reference / Event_Handling / Event_Listening#Event_Listener [3] http://books.zkoss.org/wiki/ZK_Developer's_Reference / UI_Patterns / Forward_and_Redirect#Redirect_to_Another_URL