Проблема в том, что ваше приложение кэширует данные в модели.В терминологии Wicket это называется static
модель.
Например:
Person person123 = personService.get(123);
// a static model
page.add(new Label("personMood", new Model(person123.getMood())));
Здесь Метка всегда будет отображать настроение человека во время создания Метки.Человек может изменить свое настроение в следующую секунду, но Метка все равно покажет старое / кэшированное значение.
// a dynamic model
page.add(new Label("personMood", new Model<String>() {
@Override public String getObject() {
return person123.getMood();
}
}));
здесь Метка отразит текущее настроение человекапри каждом отображении этого ярлыка / страницы.
Идентификатор страницы в URL сообщает Wicket, какую сохраняющую состояние страницу следует искать и загружать из хранилища страниц.Только страницы с состоянием имеют такой идентификатор.Если вы хотите избавиться от этого, то вы должны использовать только компоненты без поведения и поведение на своей странице.Существует модуль wicket-devutils
, который предоставляет StatelessChecker
, чтобы помочь вам определить причину, когда страница случайно становится состоящей из состояний.
В вашем случае я не уверен, какое решение будет проще - переделать модель (и)) или сделать страницу без сохранения состояния.Обычно первый проще.