Wicket 表单中的 getModel() 和 getDefaultModel() 有什么区别?

What is the difference between getModel() and getDefaultModel() in a Wicket Form?

使用 Apache Wicket 7. 表单中应使用哪种模型?组件的默认模型还是窗体本身的模型?

唯一的区别是 getModel() 是类型安全的,但它们 return 是同一个对象。

下面是 Form.getModel() 的 7.0.0 实现,例如:

@Override
@SuppressWarnings("unchecked")
public final IModel<T> getModel()
{
    return (IModel<T>)getDefaultModel();
}

这一切都可以追溯到 Wicket 1.3 -> 1.4 过渡,它将泛型引入 Wicket,设计决策是将旧的 getModel() 方法重命名为 getDefaultModel() 并重新定义 getModel() 在某些组件中使用该组件的类型参数。

长话短说:尽可能使用 getModel()

这与选择使用单个组件模型还是使用一个大模型作为表单无关。