Wicket 6 PageParameters在Chrome和Opera上为空

时间:2016-06-30 16:23:23

标签: wicket wicket-6

我已将我的网络应用程序从Wicket 1.4迁移到6.21。

在Firefox上一切正常,但在某些页面上的其他浏览器(在Chrome和Opera上测试过),PageParameters是空的。

我检查了POST请求,并且在每个提到的浏览器上看起来都一样。每个浏览器上的地址也相同,并且包含我想要使用的参数。

我的构造函数:

public MyPage(PageParameters params) {
    super(params);
    id = params.get(ID_PARAM).toInteger();
    // do stuff;
}

原因(当然):

java.lang.NumberFormatException: null

我对Wicket的了解相当有限,但Firefox上的app确实运行正常,所以我也想在Chrome上运行它。

我非常欢迎任何答案,甚至建议我应该检查什么。 当然,我可以提供一些额外的细节和代码。

编辑:

以下是Chrome上的POST屏幕截图(在服务器PageParameters上为空): POST screenshot on Chrome

调试时我遇到了很奇怪的行为。在MyPageAcceptButton会重定向到AnotherPage

使用Firefox点击AcceptButton结果,输入AcceptButton#onSubmit方法,即调用setResponsePage(AnotherPage, params)

使用Chrome点击AcceptButton结果输入MyPage()构造函数,而不输入AcceptButton#onSubmitAcceptButton#onError,所以它会以某种方式尝试重新加载MyPage。

1 个答案:

答案 0 :(得分:0)

我不知道为什么Firefox可以工作但是在附图中我们可以看到这是一个 Ajax 请求,所以它根本不应该转到MyPage构造函数。

Ajax请求针对AcceptButton(我猜是一个AjaxButton),因此可以使用AcceptButton#onSubmit(AjaxRequestTarget, Form)getRequest().getPostParameters()中读取帖子参数。

也许您使用setResponsePage()或类似的内容重定向到MyPage,但在这种情况下,Ajax请求参数不会自动转发到页面的PageParameters。