Динамически назначать идентификатор атрибута для <p: tab> в jsf

Я создал вкладки динамически, и я пытаюсь присвоить ему атрибут id, который не работает..... или каким-либо другим способом получить название вкладки, на которую нажали?

<p:accordionPanel value="#{displayassestDto.getgroups()}" var="d">
    <p:ajax event="tabChange" listener="#{displayassestDto.onTabChange}" update=":form:growl"/>
       <p:tab title="#{d.group}" id="tab_#{d.group}">
           <h:outputLabel value="Helllooo" />
            </p:tab>
</p:accordionPanel>

1 ответ

Решение

Любой другой способ получить название вкладки, на которую нажали?

Да, onTabChange можно изменить, чтобы принять объект типа TabChangeEvent, По этому объекту вы можете получить вкладку, которая вызвала событие. Ваш код будет выглядеть примерно так

       public void onTabChange(TabChangeEvent evt){
            evt.getTab(); // on this tab object returned, you can get the id, title etc
        }

Относительно того, почему ваш код не работает сейчас, возможно, это связано с состоянием вывода getGroups() не согласован во время обработки запроса. Убедитесь, что вы не выполняете какую-либо бизнес-логику или обработку в getGroups(), Но вам действительно не нужно ничего этого делать.

Другие вопросы по тегам