3

我发现 Wicket 1.5.x 存在一个奇怪的问题。突然之间,wicket 开始在每个看起来像 mydomain.com/home?1 的 url 上附加一个数字。对于我单击的每个可书签链接,检票口都会向浏览器发送一个重定向,增加该数字。尝试清理 url 并调用 mydomain.com/home 时也会发生同样的情况,我最终会得到另一个重定向和增加的数量。

更糟糕的是,在 Google App Engine 上,单击链接时的版本号会增加两倍,这似乎也会导致提交表单时出现问题,而这些表单只是......好吧......什么都没有!?

我尝试使用 setVersioned(false)/true 和 setStatelessHint(false)/true 没有任何结果。那可能是什么,如何摆脱它以及它如何影响我的应用程序无法在 GAE 上运行?

非常感谢亚历克斯

编辑:

看起来 wicket 总是在增加我的页面的版本,因为我的基本页面是有状态的(如果模型中有用户名,则显示用户名)。但是网站上没有任何变化但是点击我的书签链接到我的主页会随着每次点击增加它的页面ID,所以如果用户在主页链接上点击10次,他的历史就会被完全相同页面的10个条目污染,因为没有任何变化..这根本没有任何意义,所以我很好奇如何在不失去有状态的情况下解决这个问题!?

4

2 回答 2

5

数字代表页面的版本。它在页面有状态时出现(因此服务器必须跟踪其状态)。

只需要设置无状态提示就可以使页面无状态。您必须避免在服务器端保持状态的任何组件,并使用无状态替代方案(StatelessForm代替FormStatelessLink代替Link)。

我用一个无状态页面的例子回答了这个问题:用 Wicket 制作一个主要是无状态的 Web 应用程序很难吗?

于 2012-07-18T11:30:53.983 回答
1

有一张 Jira 票证:setVersioned(false) 应该强制使用有关此问题的单个页面版本。该问题也在邮件列表中进行了讨论。预期的复杂性:提交非版本化页面时页面重新加载

于 2014-09-07T18:17:40.493 回答