== !ListDataProviderのmodel()メソッドが、同じ!ModelObjectに対しては同じModelを返すようにするには !ListDataProviderのmodel()メソッドは、毎回新しいModelインスタンスを作成します。そのため、!GridViewや!DataViewにsetにおいてsetItemReuseStrategy(!ReuseIfModelsEqualStrategy.getInstance())を呼び出しても、Modelが毎回異なるため、Itemの再利用が行われません。 次のように!ListDataProviderを拡張すれば、同じModelインスタンスが使われるでしょう。 {{{ code java public class ReuseModelListDataProvider<T extends Serializable> extends ListDataProvider<T>{ private static final long serialVersionUID = -4848228362992249051L; Map<T, IModel<T>> modelMap = new HashMap<T, IModel<T>>(); public ReuseModelListDataProvider(List<T> list) { super(list); } @Override public IModel<T> model(T object) { IModel<T> model = modelMap.get(object); if(model == null) { model = new Model<T>(object); modelMap.put(object, model); } return model; } } }}}