1) В вашей реализации есть страница statefull, и да, «? 2» - это версия страницы.Вы можете проверить это, открыв новые вкладки или отправив форму - это число увеличится.
Когда вы открываете новую вкладку в том же браузере, фактически вы используете тот же сеанс.WebApp считает, что вы являетесь тем же пользователем на предыдущей вкладке, и создает другую версию страницы.
Теперь, если вы отправите некоторую информацию в новую вкладку, это будет нормально, но если вы вернетесь на предыдущую вкладкуи представить некоторую информацию - Wicket обнаруживает, что эта версия страницы устарела и начинает поиск актуальной версии.По какой-то причине ваша информация о POST теряется в это время.
2) Чтобы избавиться от версии страницы, вам нужно установить страницу без состояния.Для этого вам нужно сделать ссылки и сформировать их без сохранения состояния: просто замените их объектами StatelessLink
и StatelessForm
.Кроме того, установите свою страницу setStatelessHint ( true );
, и теперь ваши вкладки будут работать корректно и без версий.Разработчик пример .
3) Это ненормальное поведение, и вам необходимо управлять файлами cookie браузера.Подробнее об этом здесь .