Есть ли у кого решение такой проблемы:
В своем приложении я использую сложную программно построенную панель мониторинга на основе панели инструментов Primefaces. Чтобы преодолеть проблемы с неуникальными идентификаторами панелей, создающих панель инструментов, я привязываю этот компонент к bean-компоненту с областью запроса. Я также хотел бы перестроить панель инструментов на основе некоторых изменяемых параметров после нажатия кнопки команды.
Проблема в том, что геттер для приборной панели запускается на этапе применения значений запроса, задолго до того, как активируется actionListener команды commandButton (на этапе вызова приложения). Таким образом, несмотря на то, что панель инструментов в конечном итоге перестраивается, она не обновляется в отображаемом ответе.
С другой стороны, если я попытаюсь установить для непосредственного атрибута кнопки значение true, actionListener запустится на этапе «Применить значения запроса», но все же после геттера. Затем жизненный цикл переходит непосредственно к фазе Render Response, и результат тот же.
Любой?
Спасибо за ответ. Позвольте мне добавить немного деталей к моей проблеме.
Я храню модель спортивного турнира как свойство bean-компонента с областью действия сеанса. Это выглядит так: у бина есть свойство «турнир». Этот класс имеет список групп, каждая со своей таблицей соответствий. Идея заключалась в том, чтобы использовать три разных программно созданных компонента в качестве рендереров этой модели турнира.
Панель инструментов будет использоваться для редактирования размещения участников в группах методом перетаскивания. Для просмотра таблиц соответствий и редактирования их совпадений я использую панель вкладок с сеткой панелей для каждой таблицы. Наконец, я использую сетку панели, чтобы показать дерево турнира. Каждый из этих трех компонентов отображает некоторую часть модели для редактирования пользователем.
Поскольку модель (и, следовательно, эти компоненты рендеринга) динамически строятся в зависимости от выбираемых параметров, таких как, например, количество групп, у меня возникла проблема с id uniqnes при привязке их к bean-компоненту с областью сеанса. Поэтому я привязал их к bean-компоненту с областью запроса. С каждым запросом, изменяющим модель (в основном ajax), я хотел перерисовать эти компоненты в зависимости от параметров, установленных пользователем (также сохраненных в bean-компоненте с областью действия сеанса).
Проблема в том, что когда я перестраиваю модель на этапе вызова приложения (в прослушивателе действий, запускаемом кнопкой «перестроить мою модель»), компоненты, привязанные к bean-компоненту с областью запроса, уже были «получены». из бина (или так кажется), и они не обновляются на странице.
Я был бы очень благодарен за подсказку о том, что я делаю неправильно, и, возможно, за предложение, если подход, упомянутый выше, совершенно глуп :)