У меня есть JSP с элементом управления деревом Javascript, и я хочу, чтобы пользователь мог скрывать или показывать это дерево одним нажатием кнопки и чтобы это изменение состояния было перенесено на другие посещенные страницы, т.е. на странице A пользователь скрывает дерево, затем на странице B дерево должно оставаться скрытым и т. д., пока пользователь не решит показать дерево.
Для этого я использую AJAX, чтобы установить переменную сеанса на сервере, которая проверяется при загрузке страницы. Теперь это работает нормально, когда у рассматриваемой страницы нет строки запроса в URL.
Но со страницей с таким URL, как:
http://localhost:8084/myApp/myAppPage?myAppParam=0
Если я вызываю кнопку показать / скрыть, я получаю ошибку Java NumberFormatException, потому что строка запроса потеряна. Но при ручной перезагрузке страницы после этого отображается страница с обновленным деревом.
HTML-код дерева создается на сервере и отображается в виде HTML-элемента на каждой странице.
Насколько я понимаю, AJAX предназначен для обновления только части страницы, и страница написана таким образом, чтобы можно было обновлять только содержимое div. Но я не могу понять, почему строка запроса теряется.
Интересно, пытается ли AJAX принудительно перезагрузить всю страницу?
Я знаю, что вызов AJAX правильно достигает сервлета. Но сервлет не настроен для вызова другой страницы.
Кто-нибудь видел это раньше, и знаете ли вы обходной путь?