0

我正在开发一个应用程序来查看电子邮件。收件箱通常很大,我想使用 LazyDataModel 将它们按部分提取。数据提取有效,但 init() 函数显然首先呈现然后提取它们。

豆:

@PostConstruct
public void init() {
    JwmaSession jession = (JwmaSession) getfromSession("jession");
    listaCorreosEntrada = new LazyCorreoDataModel(jession);
    System.out.println("Rows number: " + listaCorreosEntrada.getRowCount());
}

LazyCorreoDataModel:

@Override
public List<Correo> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
List<Correo> messageList = new ArrayList<Correo>();
    try {
        Store store = jession.store;
        jFolder = new JwmaFolder(store, "INBOX");
        messageList = jFolder.messageList(false, first, pageSize);
    } catch (final Exception e) {
        e.printStackTrace();
    }
    System.out.println("List size: " + messageList.size());
    return messageList;
}

在执行此代码时,结果是:

Rows number: 0
List size: 10

我没有太多使用 LazyDataModel,但我认为应该反过来。

4

0 回答 0