我正在编写我的第一个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在错误的情况下。
在实际问题上,我仍然处于黑暗中,感谢任何解释。
答案 0 :(得分:0)
setResponsePage()
应该获得.class文件或实例化类。像
NextPage np = new NextPage(int a,int b);
....
setResponsePage(np);
或
setResponsePage(NextPage.class);