Калитка постоянный объект между панелями - PullRequest
0 голосов
/ 30 июня 2011

В калитке без сохранения в сеансе, как я могу иметь постоянный объект, например, список, который может быть установлен на одной панели и доступен с другой. Я много гуглил и не совсем уверен, как это будет работать. Любая помощь будет принята с благодарностью! Спасибо.

1 Ответ

2 голосов
/ 30 июня 2011

В связи с комментариями выше я постараюсь объяснить, о чем я думал.

Отказ от ответственности : Прошло уже больше года с тех пор, как я работал с Wicket, поэтому следуетчитать как общее доказательство концепции.Я не могу гарантировать, что он скомпилируется (на самом деле, я почти наверняка могу гарантировать, что он не скомпилируется).

public class MyPage extends ... {
    ...
    MyPageModel pm = new MyPageModel();
    add(new MyPanel1(pm));
    add(new MyPanel2(pm));
    ...
}

public class MyPageModel implements Serializable {
    private IModel<List<MyDataObject>> dataObjects;

    public MyPageModel() {
        this.dataObjects = // Load list from somewhere
    }

    public IModel<List<MyDataObject>> getDataObjects() {
        return this.dataObjects;
    }
}

public class MyPanel1 extends ... {
    private MyPageModel pageModel;

    public MyPanel1(MyPageModel pageModel) {
        this.pageModel = pageModel;
        ...
        add(new ListSomethingComponent<MyDataObject>(pageModel.getDataObjects)); // Some list renderer component which takes a IModel<List<MyDataObject>> as data
    }
}

public class MyPanel2 extends ... {
    private MyPageModel pageModel;

    public MyPanel2(MyPageModel pageModel) {
        // Same as MyPanel1...
    }
}
...