Wicket PropertyModel:如果它';s的目标模式发生了变化?
页面有一个模型,我已经完成了Wicket PropertyModel:如果它';s的目标模式发生了变化?,wicket,Wicket,页面有一个模型,我已经完成了setDefaultModel()。我在页面中添加了一个标签: Label name=new Label("name", new PropertyModel<String>(getDefaultModel(), "name")); add(name); Label name=新标签(“名称”,新属性模型(getDefaultModel(),“名称”); 加上(姓名); 稍后,页面的模型将更改。但是属性模型的目标模型仍然是原始页面的模型 当目标模型发生更
setDefaultModel()
。我在页面中添加了一个标签:
Label name=new Label("name", new PropertyModel<String>(getDefaultModel(), "name"));
add(name);
Label name=新标签(“名称”,新属性模型(getDefaultModel(),“名称”);
加上(姓名);
稍后,页面的模型将更改。但是属性模型的目标模型仍然是原始页面的模型
当目标模型发生更改时,如何保持属性模型的更新?通常我建议不要使用
setDefaultModel()
或setModel()
,正是因为这类问题
或者,您可以添加另一个间接寻址:
new Label("name", new PropertyModel<String>(this, "defaultModel.name"));
通常我建议不要使用
setDefaultModel()
或setModel()
,正是因为这类问题
或者,您可以添加另一个间接寻址:
new Label("name", new PropertyModel<String>(this, "defaultModel.name"));
新的PropertyModel(这个“defaultModelObject.name”)可以正常工作。现在我明白了。不同之处在于查找从何处开始。在
新建PropertyModel(getDefaultModel(),“name”
)的情况下,模型从目标模型开始,目标模型不变。在新建PropertyModel(此“defaultModelObject.name”)的情况下,模型从页面开始,向下运行,遇到已更改的
defaultModel`,“defaultModelObject.name”)有效。现在我明白了。区别在于查找从何处开始。对于新的PropertyModel(getDefaultModel(),“name”
,模型从目标模型开始,目标模型不会改变。对于PropertyModel(此“defaultModelObject.name”),模型从页面开始向下运行,遇到已更改的
defaultModel`。