javascript - Wicket 口:StalePageException

标签 javascript java ajax wicket

我使用的是 wicket 6.20。在此 Wicket 口页面中,我使用 AbstractDefaultAjaxBehavior 来接收 Wicket 口内的鼠标点击(x,y 坐标):

class CallFromJavaScript extends AbstractDefaultAjaxBehavior {

    private static final long serialVersionUID = -123956851227148114L;

    @Override
    public void renderHead(Component component, IHeaderResponse response) {
        super.renderHead(component, response);

        String callbackUrl = getCallbackUrl().toString();

        String javaScript = "$(document).ready(function()"
                + "{$(document).click(function(e) {"
                + "Wicket.Ajax.get({ u: '" + callbackUrl
                + "&x='+e.clientX+'&y='+e.clientY});});});";
        response.render(OnDomReadyHeaderItem.forScript(javaScript));

    }

    @Override
    protected void respond(final AjaxRequestTarget target) {
        Request request = RequestCycle.get().getRequest();
        x = Integer.parseInt(request.getRequestParameters()
                .getParameterValue("x").toString());
        y = Integer.parseInt(request.getRequestParameters()
                .getParameterValue("y").toString());

        //more code....

        }
    }
}

如果我使用一个用户(一个 session )打开页面,则一切正常。但是如果我使用其他用户(不同的 session /其他计算机)打开页面,我会收到 StalepageException:

RequestCycleExtra/qtp848034544-122 -/wicket/wicket/page?2-.... 警告:- 处理以下异常 org.apache.wicket.core.request.mapper.StalePageException:null

我注意到,如果我在页面上单击计算机 A,java 就会进入 renderHead 方法。如果我在页面上单击计算机 B,java 会再次进入 renderHead 方法。或者 java 进入 renderHead 方法。

如果我只用一台计算机(一个 session )打开页面,java 只会进入 renderHead 方法一次。

有人可以帮助我吗?

最佳答案

您使用哪个 URL 在第二台计算机上打开页面?具体来说,URL 中是否包含页面 ID?页面ID仅在同一 session 内有效;您无法从另一个 session 中打开同一页面实例。您只能在另一个 session 中创建同一页面类的另一个实例。

我认为这里需要对页面类与页面实例之间进行一些澄清。

关于javascript - Wicket 口:StalePageException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32891700/

相关文章:

jquery - 通过 AJAX 对 Laravel 资源使用 PUT 时不允许使用该方法

javascript - 如何修复异常网页行为 - "portfolio"的多个 btn 事件

java - Java中的if条件语句可以多行吗

c# - 如何使用 Google Analytics 和 AJAX 跟踪不同的按钮点击?

php - AJAX和PHP崩溃服务器

java - 用于访问私有(private) Google 电子表格并插入、更新、编辑值的 Android 代码

javascript - 检查大于今天的日期以及 js 中的日期格式的日期验证

javascript - 使用 jquery 为数据属性动态设置值

javascript - 如何使用 JavaScript 隐藏滚动条

java - 等待并继续?