我没有看到无状态模型和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?无状态模型是否可以?我认为两者都是请求范围。
答案 0 :(得分:3)
是的,您的模型在请求后都不会保留任何状态。
但是您的第一个模型的getObject()
将被多次调用,而LoadableDetachableModel
是请求范围的,即load()
仅针对每个请求调用一次。