Erro primefaces

Oi pessoal,

estou fazendo um datatable com dataExporter do primefaces, mas o dataExporter não está conseguindo localizar o componente de tabela

O erro é esse:

javax.faces.FacesException: Cannot find component "tablePrincipal" in view.

<h:form prependId="false"> <h:messages id="msg"/> <p:dataTable id="tablePrincipal" var="produto" value="#{produtoMB.listProduto}" paginator="true" rows="7"> //os campos que são exibidos </p:dataTable> </h:form> <h:form prependId="false"> <h:commandLink id="expPdf"> <p:graphicImage value="resources/images/pdf.png" style="border:0px;"/> <p:dataExporter type="pdf" target="tablePrincipal" fileName="produto" /> </h:commandLink> </p:form>

alguem conhece esse erro?

valew

o código do export tem que estar dentro do form da dataTable…

flws

mas se eu coloco no mesmo form, meu datatable da erro no campo rowKey dizendo que está null

<p:dataTable id="tablePrincipal" var="produto" value="#{produtoMB.listProduto}" paginator="true" rows="5" selectionMode="single" selection="#{produtoMB.prod}" rowKey="#{produto.codigo}" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" >

Sendo que o codigo do produto vem populado.

erro:

AVISO: Cannot find data with given rowKey:null javax.faces.FacesException: Cannot find data with given rowKey:null at org.primefaces.component.datatable.DataTable.getRowData(DataTable.java:878) at org.primefaces.component.datatable.DataHelper.decodeSingleSelection(DataHelper.java:232) at org.primefaces.component.datatable.DataHelper.decodeSelection(DataHelper.java:223) at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:61) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:790) at javax.faces.component.UIData.processDecodes(UIData.java:980) at org.primefaces.component.datatable.DataTable.processDecodes(DataTable.java:575) at javax.faces.component.UIForm.processDecodes(UIForm.java:216) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)

Bom, realmente eles precisam estar no mesmo form. E sobre esse erro aí… certeza que seu produto SEMPRE vai ter o codigo definido?

Amigo tente substituir o codigo abaixo

<p:dataExporter type="pdf" target="tablePrincipal" fileName="produto" /> 

por isso

<p:dataExporter type="pdf" target=":tablePrincipal" fileName="produto" /> 

Resumindo so coloque o “:” na frente do nome

Oi Leonardo, não deu certo. Coloquei o : e deu erro tb

javax.faces.FacesException: Cannot find component ":tablePrincipal" in view.

Fernando, o codigo é campo obrigatório. Sempre vai ter valor até porque ele eh uma chave primaria na tabela.

O erro acontece quando mando editar o cadastro e redireciono para outra tela. Ao listar no dataTable da certo.

Faça o que nosso amigo disse acima, mas coloca um ID no h:form e no update faça :id_do_form:tablePrincipal…

Alias, estranho dar erro nos form, já tentou usar apenas <h:form> e colocar TODOS os componentes dentro?

[quote=Cesar Pizolato]Faça o que nosso amigo disse acima, mas coloca um ID no h:form e no update faça :id_do_form:tablePrincipal…

Alias, estranho dar erro nos form, já tentou usar apenas <h:form> e colocar TODOS os componentes dentro?[/quote]

No caso seria sem esse primeiro ‘:’.
Coloca:
id_do_form:tablePrincipal

Ou senão, coloca um atributo no form para ele não colocar seu id no início do id de cada elemento (não lembro o nome da propriedade agora).

[quote=fernando.camargo][quote=Cesar Pizolato]Faça o que nosso amigo disse acima, mas coloca um ID no h:form e no update faça :id_do_form:tablePrincipal…

Alias, estranho dar erro nos form, já tentou usar apenas <h:form> e colocar TODOS os componentes dentro?[/quote]

No caso seria sem esse primeiro ‘:’.
Coloca:
id_do_form:tablePrincipal

Ou senão, coloca um atributo no form para ele não colocar seu id no início do id de cada elemento (não lembro o nome da propriedade agora).[/quote]

Sempre usei o : e não tem diferença alguma :S

Estou com o mesmo problema, e está tudo correto, dentro da tag form e tudo, não sei mais o que fazer viu! :x