сохранение состояния компонента в нескольких циклах запросов - PullRequest
1 голос
/ 22 мая 2011

Вопрос об управлении состоянием компонентов с помощью Apache Wicket 1.4.x

У меня есть закладка, сохраняющая состояние, которая содержит форму с установленными критериями поиска.Пользователь ищет элементы, соответствующие выбранным критериям, а затем уходит со страницы (например, к подробному представлению элементов).В какой-то момент пользователь может вернуться на страницу поиска, используя закладку.Я бы хотел, чтобы последний критерий поиска был предварительно выбран в качестве выбора по умолчанию.Однако, похоже, что BookmarkablePageRequestTarget всегда создает новый экземпляр целевой страницы в своем методе #respond(RequestCycle), таким образом теряя предыдущее состояние (компонент, поддерживающий форму поиска).

Естественно, я мог бы вручную управлятьсформировать состояние и сохранить его в подклассе WebSession, но мне интересно, может ли быть лучший способ сохранить состояние компонента в нескольких циклах запросов, например, заставить Wicket повторно использовать существующий экземпляр целевой страницы?В идеале это будет работать с закладками.

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Обычно состояние компонента сохраняется в самом экземпляре компонента.(Либо прямо в нем, либо косвенно в моделях.)

Поэтому все, что вам действительно нужно сделать, - это создать ссылку, которая указывает на страницу поиска экземпляр , или вызвать setResponsePage()с экземпляром страницы или чем-то подобным, в зависимости от того, как вы перенаправляете пользователя.

Обычно вам даже не нужно касаться целей запроса, если только реальный сценарий не намного сложнее, чем тот, который вы выполняете.переписываю.

0 голосов
/ 24 мая 2011

Смонтируйте свою закладку с помощью HybridUrlCodingStrategy или ее подкласса. Это добавит идентификатор страницы к URL и обеспечит работу кнопки «Назад» с закладками, которые можно добавить в закладки.

...