У меня есть p: dataTable и ряд элементов управления, которые изменяют его содержимое, например номер страницы, сортировку и параметры фильтра.Элементы управления вызывают взаимодействие AJAX, так что каждое изменение вызывает SQL-запрос к внутренней части, но обновляет только таблицу в клиентском браузере.Так и должно быть, верно?
То, что я не могу понять, - это лучшая практика для создания представления с возможностью создания закладок.Достаточно легко получить параметры закладки в базовом компоненте, такие как:
<f:metadata>
<f:viewParam name="orderNo" value="#{bean.orderNo}" />
<f:viewParam name="sortOrder" value="#{bean.sortOrder}" />
<f:viewParam name="showOpenItems" value="#{bean.showOpenItems}" />
<f:viewParam name="page" value="#{bean.page}" />
<f:viewParam name="pageSize" vlaue="#{bean.pageSize}" />
</f:metadata>
Итак, я добавляю элемент управления radioButton, чтобы изменить sortOrder.Это может выглядеть так:
<p:selectOneRadio value="#{bean.sortOrder}">
<p:ajax update="@form" />
<f:selectItem itemLabel="xxx" itemValue="1" />
(etc)
</p:selectOneRadio>
Первый вопрос: при запуске этого элемента управления с поддержкой AJAX есть ли способ сохранить ДРУГИЕ параметры, такие как orderNo , без обращения к компоненту ViewScoped?
Второй вопрос: как я могу обновить адресную строку браузера, чтобы, если пользователь добавляет в закладки страницу, все текущие параметры запроса таблицы были сохранены?
Большое спасибо за любую помощь.