quando clico no save, se caso esteja faltando um campo obrigatório ou não atendeu alguma regra deveria retorna a table no seu estado inicial sem alteraçao,
mao por exemplo apaguei um campo obrigatorio na dataTable esse campo fica em branco…e qdo clico em “clean” a tabela retorna ao estado inicial, gostaria de entender pq no caso de erro essa tabela esta vindo alterada.
<h:form>
<p:panel>
campos carregados pelo #{pandLMB.cadastroSelecionado} para fazer o updade ou insert
</p:panel>
<p:outputPanel >
<p:commandButton id="btGravar" value="Save" actionListener="#{pandLMB.salvar}"
icon="ui-icon-disk" update=":form"
style="font-size:12px;margin-right:30px;"/>
<p:commandButton id="btLimpar" value="Clean"
icon="ui-icon-trash" style="font-size:12px;"
actionListener="#{pandLMB.limpar}" ajax="false" />
</p:outputPanel>
<p:dataTable id="table" value="#{pandLMB.lista}" var="q"
emptyMessage="No Registry" editable="true" paginator="true"
rows="10" filteredValue="#{pandLMB.listaFiltrada}"
rowsPerPageTemplate="10,50,200,500" rowKey="#{q.id}"
style="table-layout:fixed;font-size:x-small;"
selection="#{pandLMB.cadastroSelecionado}" selectionMode="single">
</p:dataTable>
</h:form>
bean
@ManagedBean
@ViewScoped
public class PandLMB {
private...
public PandLMB() {
dao = new PandLDAO();
carregarLista();
}
public void carregarLista() {
if (null == lista) {
lista = new ArrayList<CadPandl>();
}
if (lista.isEmpty()) {
lista = dao.recuperarTodos();
}
if (null == cadastroSelecionado) {
cadastroSelecionado = new CadPandl();
cadastroSelecionado.setFunctionalArea(new FunctionArea());
}
if (lista == null) {
MessagesUtil.exibeMensagem("Error on loading data P and L", "", false);
}
}
public void salvar(ActionEvent event) {
boolean i = false;
if (cadastroSelecionado.getAccountNumber() == null
|| cadastroSelecionado.getCategoriaPel().equals("")
|| cadastroSelecionado.getStatus() == null) {
MessagesUtil.exibeMensagem("Mandatory fields must be filled.", "Info", true);
} else {
i = dao.inserir(cadastroSelecionado);
if (!(i)) {
MessagesUtil.exibeMensagem("Only months current accounts can be changed.", "Error", true);
}
}
if (i) {
MessagesUtil.exibeMensagem("Data inserted successfully.", "Success", true);
}
limpar(event);
}
public void limpar(ActionEvent event) {
setCadastroSelecionado(new CadPandl());
setListaFiltrada(null);
RequestContext.getCurrentInstance().reset("form:gridCadastro");
carregarLista();
}
//get e sets..