(无状态)模型和 LoadableDetachableModel 之间的区别
Difference between a (stateless) Model and a LoadableDetachableModel
我看不出无状态模型和 LoadableDetachableModel 之间的区别。
假设我有:
IModel<String>model=new Model<String>(){
@Override
public String getObject() {
return new Date().toString();
}
};
IModel<String>model2=new LoadableDetachableModel<String>() {
@Override
protected String load() {
return new Date().toString();
}
};
Label label = new Label("label",model);
add(label);
Label label2 = new Label("label2",model2);
add(label2);
第一个模型是无状态的,所以没有序列化。第二个 LoadableDetachableModel 有状态,设置为 load()
的结果,但它是瞬态的,所以也没有序列化。
为什么存在LoadableDetachableModel?无状态模型是否可以?我认为两者都是请求范围的。
是的,您的两个模型在请求后都不会保持任何状态。
但是您的第一个模型的 getObject()
将被调用多次,而 LoadableDetachableModel
是请求范围的,即 load()
每个请求仅调用一次。
我看不出无状态模型和 LoadableDetachableModel 之间的区别。 假设我有:
IModel<String>model=new Model<String>(){
@Override
public String getObject() {
return new Date().toString();
}
};
IModel<String>model2=new LoadableDetachableModel<String>() {
@Override
protected String load() {
return new Date().toString();
}
};
Label label = new Label("label",model);
add(label);
Label label2 = new Label("label2",model2);
add(label2);
第一个模型是无状态的,所以没有序列化。第二个 LoadableDetachableModel 有状态,设置为 load()
的结果,但它是瞬态的,所以也没有序列化。
为什么存在LoadableDetachableModel?无状态模型是否可以?我认为两者都是请求范围的。
是的,您的两个模型在请求后都不会保持任何状态。
但是您的第一个模型的 getObject()
将被调用多次,而 LoadableDetachableModel
是请求范围的,即 load()
每个请求仅调用一次。