wicket:如何组合CompoundPropertyModel和LoadableDetaccessableModel
我想实现两个目标:wicket:如何组合CompoundPropertyModel和LoadableDetaccessableModel,wicket,wicket-1.5,wicket-1.6,Wicket,Wicket 1.5,Wicket 1.6,我想实现两个目标: 我希望我的模型在生命周期内每次从DB加载(对于每个请求,只有一个对DB的请求) 我希望我的模型被动态地附加到页面上,wicket将为我完成所有这些可编辑的绑定 为了实现这两个目标,我得出结论,我需要同时使用CompoundPropertyModel和LoadableDetachableModel 有人知道这是不是一个好方法吗 我应该做新的CompoundPropertyModel(myLoadableDetachableModel) 是的,你是对的,可以使用 new Comp
CompoundPropertyModel
和LoadableDetachableModel
是的,你是对的,可以使用
new CompoundPropertyModel<T>(new LoadableDetachableModel<T> { ... })
这将“目标”引用到对象或模型
调用getObject()时,如果目标是IModel的子类,它会检查目标并代理功能:
public T getObject()
{
if (target instanceof IModel)
{
return ((IModel<T>)target).getObject();
}
return (T)target;
}
private Object target;
public ChainingModel(final Object modelObject)
{
...
target = modelObject;
}
public T getObject()
{
if (target instanceof IModel)
{
return ((IModel<T>)target).getObject();
}
return (T)target;
}
public void setObject(T object)
{
if (target instanceof IModel)
{
((IModel<T>)target).setObject(object);
}
else
{
target = object;
}
}
public void detach()
{
// Detach nested object if it's a detachable
if (target instanceof IDetachable)
{
((IDetachable)target).detach();
}
}