angle-left

Якорные ссылки в JSF

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

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

<h:outputLink value="#elementId">Якорная ссылка</h:outputLink>

Но к сожалению, данный пример работает не так как мною ожидалось, если открытая страница имеет в URL параметры GET-запроса. По сути при нажатии на такую ссылку параметры запроса сбрасываются. А в моем случае эти параметры важны, т.к. от них зависит отображаемый на странице контент.

Решить эту проблему мне удалось следующим образом.

<h:outputLink value="${request.requestURI}?${request.queryString}#elementId">Якорная ссылка</h:outputLink>

Честно говоря такое решение мне совершенно не нравится и кажется слишком громоздким. Но ничего лучше я найти не смог. Поэтому делюсь тем, что есть. 

На этом, пожалуй, откланяюсь!