Exportar dados pdf da datatable

Boa tarde pessoal, tenho uma dataTable no meu projeto e queria exportar os seus dados para o formato PDF.
Estou usando os jar:

iText-2.1.7.jar
poi-3.2-FINAL.jar

Só que quando eu vou exporta-los, aparece o seguinte erro:

Cannot find component "tbEspecialidades" in view.

Segue os dados da minha tabela:

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
   <h:head>
        <title>Clínica Odontológica</title>
    </h:head>
    <h:body>
        <ui:composition template="./template.xhtml">
            <ui:define name="content">
                <center>   
              <h:form>
             <p:fieldset legend="Registros especialidades" >
                 
                 <h:form>
                      
                    <p:panel header="Registro de Especialidades">
                        <input type="hidden" value="#{especialidadesManagedBean.recuperar()}" name="carregarEspecialidades"/>
                        <p:dataTable id="tbEspecialidades"   var="especialidadess" value="#{especialidadesManagedBean.especialidadess}"  emptyMessage="Não há registros." paginator="true" rows="5">
                            
                            <p:column headerText="Nome" filterBy="#{especialidadess.nome}">
                                <h:outputText value="#{especialidadess.nome}"/>
                            </p:column>
                            
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Alterar"/>
                                </f:facet>
                             
                                <h:commandLink action="#{especialidadesManagedBean.alterarE()}"> 
                                    <h:graphicImage width="56" height="56" value="/Imagens/editar.png"  /> 
                              
                               </h:commandLink> 
                                                               
                                   
                                
                            </p:column>
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Excluir"/>
                                </f:facet>
                               
                                <h:commandLink action="#{especialidadesManagedBean.removerE()}"> 
                                <h:graphicImage width="56" height="56" value="/Imagens/excluir.png" /> 
                                
                                </h:commandLink> 
                            </p:column>
                           
                            
                          </p:dataTable> 
                        
                          
                    </p:panel>
                        
                       
                    </h:form> 
                 
                      <p:panel header="Exportar dados"> 
                                <h:commandLink>  
                                   <p:graphicImage value="/Imagens/pdf.png" />  
                                   <p:dataExporter type="pdf" target="tbEspecialidades"  fileName="especialidades" />  
                               </h:commandLink> 
                              
                       
                           </p:panel> 
                    
                
               
             

              
              
             </p:fieldset>


            

             </h:form>
           
                </center>
                 
            </ui:define>
        </ui:composition>
    </h:body>
</html>

Desde já, obrigado a todos que puderem me ajudar. Abraço.

Então pessoal, alguém pode me dar uma força?

colocar seu código dentro da tag code exemplo

Desculpe tmvolpato, não entendi.

Desculpe pela gafe, agora eu entendi tmvolpato :slight_smile:

[quote=Roberto Gimenes]Desculpe pela gafe, agora eu entendi tmvolpato :slight_smile:
[/quote]

um jeito bom de se trabalhar com datatable em JSF é usar dataModel
ai vc tem acesso facil a linha na qual os dados que você quer alterar
sem precisar ter o trabalho de pegar a linha selecionada.

procure sobre isso ai volte aqui se tiver mais duvida.

Então pessoal?

o erro é claro…

não esta achando esse componente tbEspecialidades

pq você está fora do form ai ele nao vai acha msm

Muito obrigado por responder tmvolpato :slight_smile:
Então cara, fiz como você disse, coloquei dentro do form
mas agora o commandLink ficou sem ação, clico nele e
não acontece nada, será que está faltando algum jar?

[quote=Roberto Gimenes]Muito obrigado por responder tmvolpato :slight_smile:
Então cara, fiz como você disse, coloquei dentro do form
mas agora o commandLink ficou sem ação, clico nele e
não acontece nada, será que está faltando algum jar?
[/quote]

no log não aparece nada?

Não acontece mais nada, ja viu algo parecido?

Será que esta faltando alguma biblioteca jar?

os dados .xhtml da sua tabela continua a msm coisa?

pq no seu código estou observando tag form la embaixo do código está parecendo que é sujeira

cole seu código novamente ai

Boa tarde tmvolpato, modifiquei um pouco, mas continua na mesma, segue o código xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
   <h:head>
        <title>Clínica Odontológica</title>
    </h:head>
    <h:body>
        <ui:composition template="./template.xhtml">
            <ui:define name="content">
                <center>   
              <h:form>
             <p:fieldset legend="Registros especialidades" >
                 
                 <h:form>
                      
                    <p:panel header="Registro de Especialidades">
                        <input type="hidden" value="#{especialidadesManagedBean.recuperar()}" name="carregarEspecialidades"/>
                        <p:dataTable id="tbEspecialidades"
                                     var="especialidadess" value="#{especialidadesManagedBean.especialidadess}"
                                     emptyMessage="Não há registros." 
                                     
                                     paginator="true" rows="5">
                            
                            <p:column headerText="Nome" filterBy="#{especialidadess.nome}">
                                <h:outputText value="#{especialidadess.nome}"/>
                            </p:column>
                            
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Alterar"/>
                                </f:facet>
                             
                                <h:commandLink action="#{especialidadesManagedBean.alterarE()}"> 
                                    <h:graphicImage width="56" height="56" value="/Imagens/editar.png"  /> 
                              
                               </h:commandLink> 
                                                               
                                   
                                
                            </p:column>
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Excluir"/>
                                </f:facet>
                               
                                <h:commandLink action="#{especialidadesManagedBean.removerE()}"> 
                                <h:graphicImage width="56" height="56" value="/Imagens/excluir.png" /> 
                                
                                </h:commandLink> 
                            </p:column>
                            
                       
                           
                            
                          </p:dataTable> 
                       
                       
                        
                          
                    </p:panel>
                     
                    
                          
                             <h:panelGrid columns="2">
                             <p:panel header="Exportar dados"> 
                                <h:commandLink>  
                                    <p:graphicImage id="tpdf" value="/Imagens/pdf.png" />  
                                   <p:dataExporter type="pdf" target="tbEspecialidades"  fileName="Especialidades" />  
                               </h:commandLink> 
                              <p:tooltip for="tpdf" value="Exportar para pdf." showEffect="slide" hideEffect="fade" />    
                              
                       
                           </p:panel> 
                     
                            </h:panelGrid>
                    
                        
                        
                       
                    </h:form> 
                 
                    
                    
                
               
             

              
              
             </p:fieldset>
              
                

            

             </h:form>
           
                </center>
                 
            </ui:define>
        </ui:composition>
    </h:body>
</html>

cara você tem um form dentro do outro…
tira isso

Nossa cara, funcionou!!!
Muito obrigado mesmo!!!
Valeu pela força!!!

[quote=Roberto Gimenes]Nossa cara, funcionou!!!
Muito obrigado mesmo!!!
Valeu pela força!!![/quote]

flw estamos ai qualquer coisa