JSF f:event preRenderView инициирован вызовами f:ajax и частичным рендерингом, чем-то еще?

Таким образом, у нас есть f:event:

   <f:metadata>
    <f:event type="preRenderView" listener="#{dashboardBacking.loadProjectListFromDB}"/>
   </f:metadata>

Который инициирован, как желаемый на начальной загрузке страницы (рендеринг).

Однако это preRenderView событие также инициировано ajax частичным рендерингом страницы, который повторно представляет h:panelgroup с идентификатором projectListing, как ниже.

<h:commandButton action="#{mrBean.addProject}" value="Create Project"
                                     title="Start a new project">
   <f:ajax render="projectListing" />
</h:commandButton>

Я только хочу, чтобы dashboardBacking.loadProjectListFromDB был назван для начального рендеринга страницы, но не, когда существует ajax частичный рендеринг. Существует ли более соответствующее событие или метод, который я мог использовать?

25
задан Andrew 14 May 2010 в 02:36
поделиться

2 ответа

Другим вариантом было бы поместить вашу функциональность preRenderView в @PostConstruct метод ViewScoped управляемого боба. Эта логика будет выполняться при инициализации боба, и вы сохраните один и тот же экземпляр боба для всех ваших ajax-запросов до тех пор, пока не измените представление.

11
ответ дан 28 November 2019 в 20:45
поделиться

Вы можете попробовать прикрепить прослушиватель событий preRenderView к отдельному компоненту, а не к странице. Выберите компонент, который не отображается во время запроса Ajax.

1
ответ дан 28 November 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: