У меня есть вопрос о TabFanel RichFace (3.3.3). Я работал над двумя проектами, которые использовали TabPanel. В каждом проекте я заметил, что компоненты, которые находятся на вкладках, которые не видны, все еще имеют свои методы "getter".
Например, первая вкладка имеет доступ к данным, и любые запросы времени делаются с любой из других вкладок (включая запросы ajax) компонента, который связан с У datatable на первой вкладке все еще есть метод getter.
Я предполагаю, что это происходит (даже если вкладка в настоящее время не отображается в пользовательском интерфейсе), поскольку компонент все еще находится в иерархии компонентов? Другими словами, все компоненты являются дочерними элементами родительской панели вкладок и поэтому обрабатываются при каждом запросе ... даже если они не видны.
Хорошо ... если мое предположение верно, тогда мне нужен способ , а не , чтобы вызывать логику поиска данных для неиспользуемых вкладок. Я читал сообщения о ленивой загрузке данных (не помещая логику извлечения данных в получатель), потому что получатели могут вызываться много раз. Я прилагаю все усилия, чтобы придерживаться этого; проблема, с которой я сталкиваюсь, заключается в том, что, хотя у меня есть bean-компонент, связанный с таблицей (на первой вкладке), определенный с областью действия запроса, и получатель лениво загружает данные для таблицы, bean-объект получает экземпляр и данные вытащил (лениво) на каждый ajax запрос от других вкладок.
Должен быть способ обойти это короткое замыкание - вытащить весь контент из TabPanel в RichFace и развернуть мое собственное.
Я пытался привязать bean-компонент к области сеанса таблицы и «кэшировать» данные, которые получатель возвращает в таблицу, но проблема в том, что не существует метода жизненного цикла, к которому можно было бы привязаться при повторной визуализации вкладки ( либо путем ручного нажатия на вкладку, либо путем программного выбора вкладки).
Буду признателен за любые предложения.