Pessoal,
Tenho o seguinte cenário. Uma datatable com duas colunas. Estou utilizando a tag abaixo para colocar um check box ao lado de cada linha. Desta forma tenha a opção de selecionar vários registros para exclusão.
<p:column id="selectTodos" styleClass="selectTodos" selectionMode="multiple" />
O que ocorre é que ao selecionar um registro e clicar no botão de excluir, ao invés de o fluxo ir para o set que marca quais nodos estão selecionados e depois ir para o método que exclui, está realizando as validações do hibernate, ex : @NotEmpty. Ao se preencho o campo que acusa estar vazio ele faz o que deveria.
O que eu quero é pular essas validações nessa situação, pois quando eu vou excluir não me interessa se um campo estiver vazio.
Abaixo segue os códigos.
Componente Button customizado:
[code] <ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:p=“http://primefaces.org/ui”>
<p:commandButton id="#{id}"
actionListener="#{myActionController[myActionMethod]}" value="#{value}"
styleClass="button"
style="background: ##{customizacaoLayoutController.customiza.corComponenteAcao} !important;"
update="#{update}" rendered="#{not empty rendered ? rendered : true}"
icon="#{icon}" oncomplete="#{oncomplete}" process="#{process}" >
<ui:insert/>
</p:commandButton>
</ui:composition> [/code]
Componente datatable customizado:
[code]<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:p=“http://primefaces.org/ui”
xmlns:m=“http://www.XXX.com.br/tags”>
<p:dataTable id="#{id}DataTable" var="item" value="#{value}"
emptyMessage="#{recursos.nenhum_registro_encontrado}"
widgetVar="itemsTable"
selection="#{selection}"
paginator="true" rows="10"
currentPageReportTemplate="{currentPage} #{recursos.de} {totalPages}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
paginatorPosition="bottom" rowKey="#{item.sequencial}">
<p:column id="selectTodos" styleClass="selectTodos" selectionMode="multiple" />
<ui:insert />
<f:facet name="footer">
<div class="buttons">
<m:button id="btnAdcionar"
myActionController="#{myActionController}" styleClass="button"
myActionMethod="#{myActionMethodIncluir}" process="@this"
update=":formForm:tabView:#{id}DataTable" value="#{recursos.adicionar_item}">
</m:button>
<m:button id="btnExcluir" styleClass="button"
myActionController="#{myActionController}"
myActionMethod="#{myActionMethodExcluir}" process="#{id}DataTable"
update=":formForm:tabView:#{id}DataTable" value="#{recursos.excluir}">
</m:button>
</div>
</f:facet>
</p:dataTable>
</ui:composition>[/code]
No xhtml:
<p:tab id="empresaTiposAjustesTab" title="#{recursos.tipo_ajuste}" >
<div style="clear: both;">
<m:editableDataTable id="tabelaTiposAjustes" value="#{controller.tiposAjustes}"
selection="#{controller.tiposAjustesSelected}"
myActionController="#{controller}"
myActionMethodExcluir="excluirTipoAjuste"
updateExcluir=":formForm:tabView:"
updateAdicionar=":formForm:tabView:"
myActionMethodIncluir="adicionarTipoAjuste" >
<m:editableColumnTable titleColumn="#{recursos.codigo}" columnId="codigoColumn">
<h:outputText fieldId="textCodigo" value="#{item.codigo}" />
</m:editableColumnTable>
<m:editableColumnTable titleColumn="#{recursos.descricao}" columnId="descricaoColumn">
<m:textfield fieldId="textDescricao" value="#{item.textoAjuste}" rendered="false"/>
</m:editableColumnTable>
</m:editableDataTable>
</div>
</p:tab>
E no @ManagedBean tem esses métodos que são relacionados aos códigos acima:
public SelectListDataModel<EmpresaTipoAjuste> getTiposAjustes() {
if (tiposAjustes == null)
tiposAjustes = new SelectListDataModel<EmpresaTipoAjuste>();
return tiposAjustes;
}
public void setTiposAjustes(SelectListDataModel<EmpresaTipoAjuste> tiposAjustes) {
this.tiposAjustes = tiposAjustes;
}
public EmpresaTipoAjuste[] getTiposAjustesSelected() {
return tiposAjustesSelected;
}
public void setTiposAjustesSelected(EmpresaTipoAjuste[] tiposAjustesSelected) {
this.tiposAjustesSelected = tiposAjustesSelected;
}
public void adicionarTipoAjuste(ActionEvent e) {
EmpresaTipoAjuste tipoAjuste = new EmpresaTipoAjuste();
tipoAjuste.setCodigo(1);
this.getTiposAjustes().add(tipoAjuste);
}
public void excluirTipoAjuste(ActionEvent e) {
this.getTiposAjustes().remove(this.getTiposAjustesSelected());
}
Se algum souber como posso resolver esse problema.
Obrigado.