页属性模型的不同处理取决于运行时配置



所以我有一个Wicket 9.10.0应用程序,在Java 17下运行。

顺便说一句:Wicket是一个伟大的工作,感谢每个人在这个项目上工作。

我们有一个页面管理域实体的突变,使用不同的部分来更改数据。

章节将通过使用AjaxEventBehavior("click")连接到WebMarkupContainer的链接来打开/关闭。

现在如果我打开section "family"我可以换伴侣和孩子。如果家庭成员已经存在,则在左侧显示,并在右侧的编辑组件(文本字段、日期字段)中显示。

Ajax将更新页面,删除旧成员或添加新成员。

如果我使用runtimeconconfigurationtype DEVELOPMENT,现在这是正常工作的。

然而,如果我们在部署模式下启动应用程序,那么底层属性模型中的可编辑值(例如first-/lastname)就会被清空。当我在ListenerRequestHandler(断点)中获得组件并从组件的页面查看模型时,数据已经被修改了。

所以不知何故,我错过了在第一个请求(所有的数据都在那里)和第一个ajax请求页面的数据被清空之间的点!从我的观点来看,此时数据将只是从页面缓存中检索(可能是反序列化),但它仍然应该与完全呈现和显示页面后的数据相同。

这是可复制的:在开发模式下启动工作,在部署模式下启动应用程序:不工作。

所以问题是:

  • 谁在修改底层域实体中的数据?我该如何预防?
  • 为什么两种运行时配置模式有区别?

任何想法/帮助或指针将非常感激。

谢谢。

好了,我发现了问题:这是在隔离数据序列化/反序列化时发现的序列化问题。如果是在开发模式下,它是可以工作的,这是非常误导的。不知道这有什么关系

所以在MappedSuperClass上实现Serializable解决了这个问题!

谢谢。

最新更新