我已将我的网络应用程序从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上为空):
调试时我遇到了很奇怪的行为。在MyPage
,AcceptButton
会重定向到AnotherPage
。
使用Firefox点击AcceptButton
结果,输入AcceptButton#onSubmit
方法,即调用setResponsePage(AnotherPage, params)
。
使用Chrome点击AcceptButton
结果输入MyPage()
构造函数,而不输入AcceptButton#onSubmit
或AcceptButton#onError
,所以它会以某种方式尝试重新加载MyPage。
答案 0 :(得分:0)
我不知道为什么Firefox可以工作但是在附图中我们可以看到这是一个 Ajax 请求,所以它根本不应该转到MyPage构造函数。
Ajax请求针对AcceptButton(我猜是一个AjaxButton),因此可以使用AcceptButton#onSubmit(AjaxRequestTarget, Form)
在getRequest().getPostParameters()
中读取帖子参数。
也许您使用setResponsePage()
或类似的内容重定向到MyPage,但在这种情况下,Ajax请求参数不会自动转发到页面的PageParameters。