wicket自动刷新数据表缓存值

时间:2013-09-03 20:09:45

标签: wicket

我在面板内使用数据表,面板设置为每60秒自动刷新一次。有时候,面板似乎会拉出未传递给Object的值。我正在使用PropertyColumn将列添加到数据表中。有没有办法在wicket或数据表中专门禁用缓存

我有一个返回联系人列表的网络服务。此列表将传递到下面的所有面板

在LoadContactPanel中    新的ContactPanel(ViewPanel.getContentPanelId(),getContactListModel());

public IModel<List<Contact>> getContactListModel() {
    List<Contact> listofmodels = //get list from a webservice call
    return new ListModel<>(listofmodels);
}

在ContactPanel中,我加载了另一个名为AccordianPanel的面板

AccordianPanel包含一个RepeatingView

每个RepeatingView都是一个面板,在面板中,我添加了一个DefaultDataTable

DefaultDataTable的源代码是ContactDataProvider,它扩展了SortableDataProvider

这是ContactDataProvider

中模型方法的代码
@Override
public IModel<Contact> model(final Contact object) {

    return new AbstractReadOnlyModel() {
        private static final long serialVersionUID = 1L;

         @Override
        public Object getObject() {
                return object;
        } 
    };
}

在这种情况下,应该转换为LoadableDetachableModel。从Web服务或ContactDataProvider

中返回的那个

1 个答案:

答案 0 :(得分:1)

也许您正在从存储在内存中的模型中加载数据。每次呈现组件时,都应使用LoadableDetachableModel加载数据。由于您提供的细节太少,不确定它是否回答了您的问题,请显示一些代码。