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.