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

时间:2013-04-22 20:45:35

标签: wicket wicket-1.5

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

  1. 执行字段验证,
  2. 将值转换为易于为下一页解析的输入格式(数组)。
  3. 将用户重定向到下一页(数据在URL中传递)
  4. 然后下一页加载数据执行计算并显示结果。
  5. 这一切都是在Wicket无国籍地完成的。我在想我是怎么做到的。它感觉“不对”。转换为数组并重定向“工作”但必须有更好的方法。

    更新
    为什么表单是无状态的:
    有问题的Web应用程序与其他2个Web应用程序共享服务器。在部署此应用程序的新版本后,我遇到了OutOfMemoryException s。当我检查Tomcat Manager应用程序 BEFORE 我将表单转换为无状态时,我会经常看到~150或“活动会话”。现在表单/结果页面是无状态的,我看到5个“活动会话”。这减少了我的内存使用量。(我认为)。我仍然有一个唠叨的疑问:https://stackoverflow.com/questions/16049219/how-to-handle-a-hibernate-bi-directional-mapping-for-a-set-properly

    建议:
    我开始想知道是否应该删除“结果”页面挂载点并将其转换为面板。这样我就可以直接将复杂的对象传递给它,并在整页刷新中交换面板。这在无状态页面中是否可能?

    POST
    另外我不相信wicket原生支持POST重定向:How to use post method in wicket

1 个答案:

答案 0 :(得分:1)

您是否密切关注OutOfMemoryError?通常,在重新部署应用程序时,您会耗尽permgen空间,而不是用户内存。 Permgen空间泄漏很常见,很难去除。可能这与Wicket无关,但更多的是仍然加载的类。您应该尝试使用Java 8(没有永久生成)或更新版本的Tomcat(和Wicket),因为在较新版本的框架和容器中经常会解决类加载器泄漏问题。

另见本文:Avoiding Apache Tomcat Out Of Memory Errors