【发布时间】:2014-01-08 09:23:37
【问题描述】:
在我的代码中,我有如下内容:
检票口形式:
public class MyForm extends Form<MyFormModel> {
public MyForm(String id){
super(id, new CompoundPropertyModel<MyFormModel>(new MyFormModel())
//add some labels from the CompoundPropertyModel
}
@Override
protected void onSubmit() {
setResponsePage(new NewPage(getModelObject()));
}
}
表单模型:
public class MyFormModel extends LoadableDetachableModel<List<NotSerializableObject>> {
transient List<NotSerializableObject> list;
//Some labels with getters and setters for CompoundPropertyModel use
protected List<NotSerializableObject> load() {
//list = dbstuff.getstuff()
}
}
当页面加载了MyForm 时,MyFormModel 使用load() 函数并在提交表单之前尝试访问数据库。我不明白为什么,因为在提交表单并调用onSubmit() 之前不会调用getModelObject()。
我知道 CompoundPropertyModel 和 LoadableDetachableModel 应该分开来解决这个问题,但为什么这不起作用?为什么以及从哪里调用 load() 函数?
感谢您的帮助,
马丁
【问题讨论】: