P:dialog excluir com Primefaces

Amigos tenho uma p:dataTable com um botao excluir, quando clico nesse botão aparece um p:dialog para confirmar a exclusão. O problema é que a variável que utilizo pra excluir esta vindo null.
XHTML:

[code]<p:dataTable id=“dtCarreta” value="#{carretaMBean.carretas}" lazy=“true” var=“item”
paginator=“true” rows=“5”
emptyMessage="#{msgs.dtVazia}" rowsPerPageTemplate=“5,10,15”
selection="#{carretaMBean.selectedCarretas}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink}
{PageLinks}
{NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? ‘even-row’ : ‘odd-row’}"
rowIndexVar=“rowIx”>
<f:facet name=“header”>
<p:commandButton id=“btnExcluirCarreta” value="#{msgs.cbtExcluirCarreta}"
image=“ui-icon ui-icon-close” oncomplete=“excluir(xhr, status, args)”
action="#{carretaMBean.excluir}">
</p:commandButton>
</f:facet>

</p:dataTable>

      <!-- Painel que aparece quando clicar o botão excluir -->
                        <p:confirmDialog id="excluirCarreta" message="#{msgs.optLabelMsgExclusaoCarreta}"
                                         width="350" showEffect="explode" hideEffect="explode"
                                         header="#{msgs.optLabelMsgConfirmarCarreta}" severity="alert"
                                         widgetVar="confirmation" modal="true">
                            <p:commandButton id="cbtSim" value="#{msgs.cbtSim}"
                                             action="#{carretaMBean.doRemoveListaCarretas}"
                                             image="ui-icon-check" update="dtCarreta, msgs"
                                             oncomplete="confirmation.hide()"
                                             style="left: 30%;">
                            </p:commandButton>

                            <p:commandButton value="#{msgs.cbtNao}" image="ui-icon-cancel"
                                             onclick="confirmation.hide()" type="button" style="left: 35%;"/>
                        </p:confirmDialog>

[/code]

Bean

public void doRemoveListaCarretas() { if (selectedCarretas.length != 0) { carretaDAO.removeListaCarreta(selectedCarretas); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso:", "Registro excluido com sucesso")); } }

DAO

// Método que remove o Carreta usando o método removePojo do GenericDAO; public void removeCarreta(Carreta carreta) { removePojo(carreta); }

// Método que remove as carretas selecionadas; public void removeListaCarreta(Carreta[] selectedCarretas) { if (selectedCarretas != null) { for (int i = 0; i < selectedCarretas.length; i++) { this.removeCarreta(selectedCarretas[i]); } } }

Alguél saberia me falar o que devo fazer para a selectedCarretas nao vir nula???

Abraço.

Neste ponto…

vc tem que retirar a action do commandButton…

<p:commandButton id="btnExcluirCarreta" value="#{msgs.cbtExcluirCarreta}"  
                                             image="ui-icon ui-icon-close" oncomplete="excluir(xhr, status, args)"  
                                             action="#{carretaMBean.excluir}">  
                            </p:commandButton>  

coloca este código no corpo do commandButton para setar a carreta selecionada

<f:setPropertyActionListener target="#{carretaMBean.carretaSelecionada}" value="item" />

[]´s

Cara não funcionou. Fiz o que vc sugeriu e nada. Mas alguma dica?

Peesoal o que tá acontecendo é o seguinte: Esta valorizando apartir do segundo registro selecionado na lista. Por exemplo, se eu selecionar os regtistro Teste 1 e Teste 2, irá excluir só o rgistro Teste 2. Por isso que se eu selecionar só um registro nao excloui nada.
Alguém tem alguma ideia do que pode ser?