Olá! Sou iniciante em JSF e PrimeFaces e estou encontrando um problema utilizando TabView. Meu propósito é clicar em um botão e mudar o activeIndex da TabView, mas ao rodar a aplicação aparece um erro.
xhtml
<h:body>
<p:tabView id="Tab" activeIndex="#{cadempBean.tab}">
<p:tab title="Pesquisar" id="tPesquisar">
<h:form prependId="false">
<p:panel>
<h:panelGrid columns="4" rows="2" width="100%">
<h:outputText value="Conteúdo" />
<h:outputText value="Ordem" />
<p:spacer></p:spacer>
<p:spacer></p:spacer>
<p:inputText value="#{cadempBean.conteudo}" size="100"/>
<p:selectOneMenu value="#{cadempBean.ordem}" style="width:100px;" >
<f:selectItem itemValue="empnom" itemLabel="Nome" />
<f:selectItem itemValue="empfan" itemLabel="Fantasia" />
<f:selectItem itemValue="empmun" itemLabel="Cidade" />
<f:selectItem itemValue="empest" itemLabel="Estado" />
</p:selectOneMenu>
<p:commandButton value="Buscar" action="#{cadempBean.gerarLista}" update="listaEmpresas" image="buscar"/>
</h:panelGrid>
</p:panel>
<br/>
<p:panel>
<p:dataTable widgetVar="listaEmpresas" id="listaEmpresas" var="empresa" value="#{cadempBean.lista}" rows="10" paginator="true" selection="#{cadempBean.cademp}" selectionMode="single" emptyMessage="Nenhum Registro Encontrado!" >
<f:facet name="header">
Empresas
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Código" />
</f:facet>
<h:outputText value="#{empresa.empcod}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{empresa.empnom}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Cidade" />
</f:facet>
<h:outputText value="#{empresa.empmun}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Estado" />
</f:facet>
<h:outputText value="#{empresa.empest}" />
</p:column>
<f:facet name="footer">
<p:commandButton image="novo" value="Novo Registro" actionListener="#{cadempBean.tabIndex}" update="Tab"/>
</f:facet>
</p:dataTable>
</p:panel>
</h:form>
</p:tab>
<p:tab title="Manipulação" id="tManipular">
</p:tab>
</p:tabView>
</h:body>
public class CadEmpBean {
private CadEmp cademp;
private List<CadEmp> lista;
private String conteudo;
private String ordem;
private String tab = "0";
public CadEmp getCademp() {
return this.cademp;
}
public void setCademp(CadEmp cademp) {
this.cademp = cademp;
}
public String getConteudo() {
return conteudo;
}
public void setConteudo(String conteudo) {
this.conteudo = conteudo;
}
public String getOrdem() {
return ordem;
}
public void setOrdem(String ordem) {
this.ordem = ordem;
}
public List<CadEmp> getLista() {
return lista;
}
public void setLista(List<CadEmp> lista) {
this.lista = lista;
}
public void gerarLista() {
CadEmpRENG cadempRN = new CadEmpRENG();
this.lista = cadempRN.pesquisarEmpresa(this.ordem, this.conteudo);
}
public String getTab() {
return tab;
}
public void setTab(String tab) {
this.tab = tab;
}
public void tabIndex(){
if (this.tab.equals("0"))
this.tab = "1";
else
this.tab = "0";
}
}
javax.el.PropertyNotFoundException: /index.xhtml @50,58 activeIndex="#{cadempBean.tab}": Property 'tab' not found on type br.com.samospru.controle.CadEmpBean
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at org.primefaces.component.tabview.TabView.getActiveIndex(TabView.java:99)
at org.primefaces.component.tabview.TabViewRenderer.encodeMarkup(TabViewRenderer.java:108)
at org.primefaces.component.tabview.TabViewRenderer.encodeEnd(TabViewRenderer.java:61)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Obrigaada!
