2

您好,开发人员,我在 ZK 上设置 Timer 方法时遇到问题,默认我的 .zul 页面中的方法是:

<timer id="timer" delay="1000" repeats="false"
onTimer="response.sendRedirect('./Login.zul')" />

但是代码是错误的(我认为是因为('./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 Docs 但没有任何帮助..

感谢您的关注,并为我的英语不好感到抱歉:D

4

2 回答 2

4

你可以试试下面的例子,

<timer id="timer" delay="1000" repeats="false"
    onTimer='Executions.sendRedirect("./Login.zul")' />
于 2011-06-02T10:47:33.977 回答
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

于 2011-06-02T01:13:25.260 回答