如何在ZK中为重定向添加Java方法计时器

时间:2011-06-01 08:46:29

标签: java zk

你好开发人员,我在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

2 个答案:

答案 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