有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

各位开发人员,您好,我在ZK上设置计时器方法时遇到了问题,在我的。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文档,但没有任何帮助

谢谢你的关注,很抱歉我的英语不好


共 (2) 个答案

  1. # 1 楼答案

    onTimer

    事件不是属性[1]。您应该在计时器组件上使用addEventListener()[2]来添加执行实际sendRedirect的方法。例如,在您的OTP控制器中,您可以

    <!  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的_引用/事件_处理/事件_侦听#事件_侦听器 [3] http://books.zkoss.org/wiki/ZK_Developer的_引用/UI_模式/转发和重定向#重定向到另一个URL

  2. # 2 楼答案

    你可以试试下面的例子

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