Может ли Wicket разрешить передачу обоих следующих параметров в объекте PageParameters? Очевидно нет?Передача информационного сообщения на страницу калитки при использовании PageParameters
accountId
который является показано в URL (/account/<ID>
)infoMessage
параметр, который не показано в (bookmarkable) URL
Я в настоящее время использую IndexedHybridUrlCodingStrategy для страницы и просто попробуйте параметры «0» и «infoMessage» дает это исключение:
WicketMessage: не все параметры были закодированы. Убедитесь, что все имена параметров являются целыми числами в последовательном порядке, начиная с нуля. Текущие имена параметров: [0, InfoMessage]
Если изменить «InfoMessage» имя параметра в «1», она работает, но дает некрасивый URL (в данном случае что-то вроде /account/42/Tosite%20108207%20tallennettiin.5
), который не то, что есть Я хочу.
Теперь, очевидный ответ, возможно, является то, что InfoMessage не должно быть в PageParameters. Но дело в том, я пытался добавить его в качестве нормального параметра конструктора вместо этого, например, так:
public AccountPage(PageParameters parameters, String infoMessage) {
// ...
}
Но этот подход не в одном важном прецеденте. После удаления постоянного объекта «Запись», связанного с учетной записью, следующее: не правильно загружает учетную запись (удаленная запись все еще видна). Этот код выполняется в onClick() AjaxFallbackLink.
setResponsePage(new AccountPage(AccountPage.pageParameters(account), message));
С другой стороны, мой оригинальный подход ...
setResponsePage(AccountPage.class, AccountPage.pageParameters(account));
... отлично работает, так как она каким-то образом загружает AccountPage "более тщательно", но, опять же, я не знать, как легко передать параметр infoMessage.
(AccountPage.pageParameters()
выше простая статическая утилита для создания соответствующего PageParameters с «0» = счетом ид. Конструктор AccountPage всегда загружает учетную запись с сохранения с использованием идентификатора.)
Любых идей? Возможно, использование AjaxFallbackLink частично вызывает проблему?
Использование калитки 1.4.
Да, это именно то, что я пытался сделать; благодаря! Приятно, что сообщение, хранящееся с 'getSession(). Info()' автоматически получает панель обратной связи целевой страницы. – Jonik