Динамически назначать идентификатор атрибута для <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()
, Но вам действительно не нужно ничего этого делать.