wicket Property Model如何动态地将数据传递给其组件

时间:2016-12-27 13:55:46

标签: model wicket

我正在学习Wicket,并想知道PropertyModel如何动态检索其数据。

据我所知,为了使Model动态,我们必须覆盖getObject方法。有人可以解释PropertyModel的内部工作原理吗?

1 个答案:

答案 0 :(得分:6)

PropertyModel通常通过为对象上的给定属性表达式调用getter来获取其模型对象,例如new PropertyModel(object, "name")将尝试评估object.getInnermostModelOrObject().getName()

但是,您可以传递一个特定的方法名称:new PropertyModel(object, "calculateName()"),它将评估为object.getInnermostModelOrObject().calculateName()

如果您将IModel作为PropertyModel的后备对象传递,则将返回模型对象属性(请参阅ChainingModel),为您提供动态模型对象。

您可以在此处查看表达式语言:https://ci.apache.org/projects/wicket/apidocs/7.x/org/apache/wicket/core/util/lang/PropertyResolver.html