Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript wicket:StalePageException_Javascript_Java_Ajax_Wicket - Fatal编程技术网

Javascript wicket:StalePageException

Javascript wicket:StalePageException,javascript,java,ajax,wicket,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 re

我用的是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....

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

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

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

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


有人能帮我吗?

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


我认为这里需要澄清页面类和页面实例之间的关系。

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


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

听起来好像是同一个http会话,url中的pageId也一样。不知道为什么会发生在不同的会话中…浏览器依赖项?当一些firefox出现故障时,会出现旧的firefox问题?多个实例。是的,wicket以这种方式为每个会话实现有状态引擎、页面、组件等实例。它与基于请求的框架struts不同,其中(可能)只有一个实例,所有状态都是session sessionID不同,听起来像是相同的http会话,url中的pageId也相同。不知道为什么会发生在不同的会话中…浏览器依赖项?当一些firefox出现故障时,会出现旧的firefox问题?多个实例。是的,wicket以这种方式为每个会话实现有状态引擎、页面、组件等实例。它与基于请求的框架struts不同,其中(可能)只有一个实例,所有状态都是session。sessionID不同