Недавно столкнулся с задачей сделать в JSF приложении несколько якорных ссылок на странице для упрощения навигации. Казалось, что может быть проще? Однако, в ходе реализации столкнулся с одной проблемой.
В базовом случае, когда нам нужно сделать якорную ссылку на элемент на этой странице, всё просто.
<h:outputLink value="#elementId">Якорная ссылка</h:outputLink>
Но к сожалению, данный пример работает не так как мною ожидалось, если открытая страница имеет в URL параметры GET-запроса. По сути при нажатии на такую ссылку параметры запроса сбрасываются. А в моем случае эти параметры важны, т.к. от них зависит отображаемый на странице контент.
Решить эту проблему мне удалось следующим образом.
<h:outputLink value="${request.requestURI}?${request.queryString}#elementId">Якорная ссылка</h:outputLink>
Честно говоря такое решение мне совершенно не нравится и кажется слишком громоздким. Но ничего лучше я найти не смог. Поэтому делюсь тем, что есть.
На этом, пожалуй, откланяюсь!