我提前道歉,诚然我对 Wicket 缺乏了解。我读到使用 LoadableDetachableModel 会阻止对象被序列化,但是在多次运行测试后,我可以看到它仍然被序列化(有时在会话超时或超时后页面加载之后)。我想也许我没有正确使用模型。任何帮助或方向将不胜感激。
代码如下所示:
...
LoadableDetachableModel ldm = new LoadableDetachableModel<SomeSettings>() {
@Override
public SomeSettings load() {
if (someSettingsDao == null) someSettingsDao = new SomeSettingsDao();
return someSettingsDao.Retrieve("1") == null ? new SomeSettings()
: (SomeSettings) someSettingsDao.Retrieve("1");
}
};
final Form<SomeSettings> form = new Form<SomeSettings>("someSettings", new CompoundPropertyModel<SomeSettings>(ldm)) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit() {
if (someSettingsDao == null) someSettingsDao = new SomeSettingsDao();
if (someSettingsDao.Retrieve("1") != null)
someSettingsDao.Update(getModelObject());
else
someSettingsDao.Insert(getModelObject());
setResponsePage(UserPanel.someSettingsPageProvider.getPageClass());
}
};
...
是我对模型的使用吗?或者数据是如何持久化的?谢谢。