如何在Wicket中正确创建无状态表单和无状态结果页面?



我有一个web应用程序与一个复杂的形式:

  1. 执行字段验证,
  2. 将值转换为易于为下一页解析的输入格式(数组)。
  3. 将用户重定向到下一页(数据在URL中传递)
  4. 下一页然后加载数据,执行计算并显示结果。

这些都是在Wicket中无状态完成的。我在想我是怎么做到的。感觉不"对"。转换为数组和重定向"工作",但必须有一个更好的方法。


为什么表单是无状态的:
所讨论的web应用程序与另外2个web应用程序共享服务器。在部署这个应用程序的新版本后,我遇到了OutOfMemoryException s。当我检查Tomcat Manager Application BEFORE我将表单转换为无状态时,我通常会看到150个或"活动会话"。现在,表单/结果页面是无状态的,我看到5个"活动会话"。这大大减少了我的内存使用量。(我认为)。但我仍然有一个挥之不去的疑问:https://stackoverflow.com/questions/16049219/how-to-handle-a-hibernate-bi-directional-mapping-for-a-set-properly

建议:
我已经开始想知道如果也许我应该删除"结果"页面挂载点,并将其转换成一个面板。这样,我就可以将复杂的对象直接传递给它,并在整个页面刷新中交换面板。这在无状态页面中可能吗?

文章
我也不相信wicket本身支持POST重定向:如何在wicket中使用POST方法

你仔细看过OutOfMemoryError了吗?通常在重新部署应用程序时,会耗尽永久空间,而不是用户内存。Permgen空间泄漏是很常见的,很难消除。这可能与Wicket无关,但更多的是与保持加载的类有关。您应该尝试使用Java 8(没有永久生成)或更新版本的Tomcat(和Wicket),因为通常在新版本的框架和容器中解决了类加载器泄漏。

请参阅本文:避免Apache Tomcat内存不足错误

最新更新