哪种方法更好?:
add(new Label("label", new PropertyModel<String>(cat, "name")));或
add(new Label("label", cat.getName()));我试着找到任何关于比较的信息..但是找不到任何东西,我怎么理解第一种方法是用于读/写逻辑,第二种是用于只读逻辑,(如果我不正确,请给我写信)。但是对于只读逻辑,哪个更好呢?
发布于 2012-03-06 04:15:14
它们在功能上是不同的。
第一个说明:每当重新呈现此组件时,请刷新该值。第二个选项是:显示创建时的值。
你需要哪一个?如果您想要一个动态刷新的标签,您别无选择,它是PropertyModel或CompoundPropertyModel (请参阅后面)。
如果希望它保持不变,即使底层对象发生了变化,也不能使用PropertyModels。
但是,如果您绝对确定cat.getName()永远不会改变,因此两个版本的行为是相同的,那么我个人不会使用PropertyModel,原因有三:
PropertyModel将会崩溃。cat.getName()放在那里,你可以在你的集成开发环境中“点击”,你的标签将会出现在搜索getName()方法的所有调用中,等等。如果有许多组件引用同一对象的字段,则可以考虑使用CompoundPropertyModels,尽管仍然存在问题1和2,但它会使代码看起来干净得多。
但是,如果您有三个或更少的类似组件,并且不需要动态模型,则只需使用无模态格式。
https://stackoverflow.com/questions/9569390
复制相似问题