TabView primefaces 3.1 Перезагрузите страницу внутри вкладки и снова вызовите ManagedBean

Мне нужна помощь, я использую Primefaces 3.1 и делаю несколько страниц, и я хочу загрузить эти страницы во вкладку, и каждая страница зависит друг от друга.

Так.

<p:tabView id="tabView1">
        <p:tab id="tabInfo" title="title1">
            <ui:include src="page1.xhtml"/>
        </p:tab>
        <p:tab id="tab2" title="title2" >
            <ui:include src="page2.xhtml"/>
        </p:tab>
        <p:tab id="tab3" title="title3">
            <ui:include src="page3.xhtml"/>
        </p:tab>
    </p:tabView>

страница 2 зависит от формы страницы 1 для проведения некоторых проверок и представления или нет страницы 2 этой информации, страница 3 нуждается в том же.

Как я могу сделать, когда я выбираю вкладку 2, снова вызываю ManagedBean страницы 2 и перезагружаю страницу 2, выполняю эту проверку и представляю данные?

Эта проверка и весь поиск информации находится в методе инициализации.

Пожалуйста, помогите мне с этим.

И я извиняюсь за мой плохой английский.

Спасибо,


person lion316    schedule 04.04.2012    source источник


Ответы (1)


Вам нужно добавить что-то вроде этого в свой tabView:

<p:tabView id="tabView1">
     <p:ajax event="tabChange" listener="#{yourBean.onTabChange}" update=":tab2"/>
...
  • событие: определяет, что должно произойти, чтобы запустить запрос ajax
  • слушатель: будет уведомлен, если событие произойдет
  • update: выполняет повторный рендеринг по данному идентификатору

Обновите, чтобы ответить на ваш комментарий:

Метод onTabChange может выглядеть так:

public void onTabChange(TabChangeEvent event) {  
    // ... 
} 

событие предоставляет выбранную вкладку:

event.getTab()

теперь вы можете перерисовать все свои вкладки с помощью:

... update=":tabInfo, :tab2, :tab3"

или вы сохраняете выбранную вкладку в своем компоненте и делаете что-то вроде этого:

... update="#{yourBean.selectedTab}"

где selectedTab будет выглядеть так:

public String getSelectedTab(){
     // selectedTab is a variable that should be set onTabChange()
     return selectedTab;
}
person SWoeste    schedule 04.04.2012
comment
Спасибо за ваш ответ, но что произойдет, если мне нужно перезагрузить страницу на вкладке 3, и что должно быть внутри метода onTabChange? - person lion316; 05.04.2012
comment
Большое спасибо, я бы попробовал это. - person lion316; 05.04.2012