Wicket - SetResponsePage回调未触发

时间:2011-07-05 13:48:19

标签: wicket

我正在编写我的第一个wicket应用程序,今天遇到了我的第一个路障。这是问题所在。 我有一个包含AjaxSubmitLink的页面。在它的onSubmit事件中,我使用setResponsePage加载一个面板。

从我的应用程序的主页,我可以通过两种方式导航到上面提到的页面 - 通过超链接或切换选项卡(使用wicket扩展的基本ITab),两者都调用相同的构造函数相同的论点。

现在如果我使用超链接导航到页面,一切正常。但是,如果我使用选项卡导航到该页面,则AjaxSubmitLink不会加载该面板。有一个Ajax请求,我可以看到服务器正在处理它,但它就像没有回调正在执行。

我注意到另一个奇怪的事情,在后一种情况下,firebug不会在控制台上记录我的Ajax请求。它在前一种情况下记录请求就好了。

我有点难过,任何提示,指示或推动?

编辑:代码声明链接。

 editLink = new AjaxSubmitLink("editLink") {
            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> masterForm) {
                    setResponsePage(new EditPage(programId));
            }
        };

编辑:我检查了使用fiddler发出的请求,不成功的Ajax调用返回302而不是200.

更新:

我找到了解决方法。提琴手信息引导我搜索setResponsePage行为,这导致我https://issues.apache.org/jira/browse/WICKET-1703

无论如何,因为我并没有严格要求链接的POST请求,而是使用GET来获得所需的行为。

使用fiddler的有趣发现:发送的请求的内容类型是multipart / form-data而不是application / x-www-form-urlencoded在错误的情况下。

在实际问题上,我仍然处于黑暗中,感谢任何解释。

1 个答案:

答案 0 :(得分:0)

setResponsePage()应该获得.class文件或实例化类。像

NextPage np = new NextPage(int a,int b);
....
setResponsePage(np);

setResponsePage(NextPage.class);