В калитке без сохранения в сеансе, как я могу иметь постоянный объект, например, список, который можно установить на одной панели и получить к нему доступ с другой. Я много гуглил, и я не совсем уверен, как это будет работать. Любая помощь будет принята с благодарностью! Спасибо.
калитка постоянный объект между панелями
Ответы (1)
В связи с комментариями выше, я попытаюсь объяснить, что я думал.
Отказ от ответственности. Прошло больше года с тех пор, как я работал с 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...
}
}
person
jensgram
schedule
30.06.2011
Это действительно так. Если компоненты, которые должны совместно использовать свои данные, тесно взаимодействуют друг с другом (в одном и том же или в последующих запросах), решением является общая модель. Если это не так, используйте переменную сеанса.
- person biziclop; 30.06.2011
IModel
из)List
. Затем каждая панель ссылается на экземпляр модели дляList
(илиIModel<List>
). То есть ни одна панель не обрабатывает данные, они просто содержат ссылку на какой-то общий экземпляр модели. - person jensgram   schedule 30.06.2011List
(IModel<List>
) данных. - person jensgram   schedule 30.06.2011