PropertyModel:如果它的目标模型发生变化怎么办?

PropertyModel: what if it's target model changes?

页面有模型,我做了setDefaultModel()。我在页面上添加了一个标签:

Label name=new Label("name", new PropertyModel<String>(getDefaultModel(), "name"));
add(name);

稍后,页面的模型发生了变化。但是 属性 模型的目标模型仍然是原始页面的模型。

当目标模型发生变化时,如何保持 属性 模型更新?

通常我建议不要使用 setDefaultModel()setModel(),正是因为这类问题。

或者您可以添加另一个间接寻址:

new Label("name", new PropertyModel<String>(this, "defaultModel.name"));

... 或使用 Wicket 8:

new Label("name", () -> ((Foo)getDefaultModel()).getName());