O action do h:commandButton não está executando. Estou usando JSF 2.2 puro. O escopo do bean é Request. Alguém poderia me ajudar a corrigir esse problema?
Botão: <h:commandButton class="btn btn-success" value="Salvar" action="#{clienteBean.salvar()}" onclick="return confirm('Confirma a gravação dos dados?')"/>
Bean: public void salvar() { this.cliente.setStatus("Ativo"); ClienteRN clienteRN = new ClienteRN(); clienteRN.salvar(this.cliente); limpar(); }
Puxa gente, será que não tem ninguém que possa me ajudar com isso? Tô quebrando a cabeça pra fazer funcionar há dias e não consigo.
Aqui está o código da página que contém o botão:
`<?xml version="1.0" encoding="UTF-8"?>
<h:head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/><title>CadastrodeCliente</title><h:outputStylesheetlibrary="css"name="bootstrap.css"/><h:outputStylesheetlibrary="css"name="bootstrap-datepicker.css"/><h:outputScriptlibrary="js"name="jquery.min.js"/><h:outputScriptlibrary="js"name="bootstrap.js"/><h:outputScriptlibrary="js"name="bootstrap-datepicker.js"/><h:outputScriptlibrary="js"name="maskedinput.js"/><script>$(document).ready(function(){
$('.datepicker').datepicker({
format:'dd/mm/yyyy',language:'pt-BR'
});
});
</script><script>$(document).ready(function($){
$("#date").mask("99/99/9999");
});
</script></h:head><h:body><!-- Início "Principal" --><divid="principal"class="container-fluid"><!-- Início "Topo" --><divid="topo"class="row"><divclass="col-md-12"><ui:includesrc="/template/menu_sistema.xhtml"/></div></div><!-- Fim "Topo" --><!-- Início "Cabeçalho" --><divid="cabecalho"class="row"><divclass="col-md-12"><h2>CadastrodeClientes</h2></div></div><!-- Fim "Cabeçalho" --><!-- Menu de Botões --><divid="menu_botoes"class="row"><divclass="col-md-12"><divclass="btn-toolbar"role="toolbar"><h:formclass="btn-group pull-left"role="group"id="btn-group-left"><h:buttonclass="btn btn-primary"outcome="cadastro_cliente.jsf"value="Novo"/><h:commandButtonclass="btn btn-success"value="Salvar"action="#{clienteBean.salvar()}"/></h:form><divclass="btn-group pull-right"role="group"id="btn-group-right"><h:buttonclass="btn btn-warning"value="Anexos"outcome="cadastro_arquivo.jsf"/><h:buttonclass="btn btn-info"value="Pesquisar"outcome="consulta_clientes.jsf"/></div></div></div></div><!-- Fim Menu de Bot�es --><!-- Formulário --><divid="formulario"class="row"><divclass="col-md-12"><h:formid="form"prependId="false"class="form-horizontal"acceptcharset="ISO-8859-1"><h:inputHiddenid="codigo"value="#{clienteBean.cliente.codigo}"/><divclass="form-group"><!-- Primeira Linha --><labelclass="control-label col-md-2"for="corretor">CorretorResponsável:</label><divclass="col-md-5"><h:selectOneMenuclass="form-control"id="corretor"value="#{clienteBean.cliente.corretor}"required="true"requiredMessage="Campo 'Corretor' é obrigatório!"converter="corretorConverter"><f:selectItemitemLabel="Selecione"/><f:selectItemsvalue="#{clienteBean.corretores}"var="corretor"itemLabel="#{corretor.nome}"itemValue="#{corretor}"/></h:selectOneMenu><h:messagefor="corretor"errorStyle="color:darkred;font-size:11px;"/></div><labelclass="control-label col-md-2"for="data_cadastro">DataCadastro:</label><h:outputLabelclass="control-label col-md-1"value="#{clienteBean.cliente.datacadastro}"><f:convertDateTimepattern="dd/MM/yyyy"/></h:outputLabel></div><!-- Fim Primeira Linha --><divclass="form-group"><!-- Segunda Linha --><labelclass="control-label col-md-2"for="nome">Nome:</label><divclass="col-md-5"><h:inputTextclass="form-control"id="nome"value="#{clienteBean.cliente.nome}"required="true"requiredMessage="Campo 'Nome' é obrigatório!"/><h:messagefor="nome"errorStyle="color:darkred;font-size:11px;"/></div><labelclass="control-label col-md-2"for="data_nascimento">DataNascimento:</label><h:inputTextclass="datepicker col-md-1"id="data_nascimento"value="#{clienteBean.cliente.nascimento}"/></div><!-- Fim Segunda Linha --><divclass="form-group"><!-- Terceira Linha --><labelclass="control-label col-md-2"for="pessoa">Pessoa:</label><divclass="col-md-2"><h:selectOneMenuclass="form-control"id="pessoa"value="#{clienteBean.cliente.tipopessoa}"><f:selectItemitemLabel="Física"itemValue="Física"/><f:selectItemitemLabel="Jurídica"itemValue="Jurídica"/></h:selectOneMenu></div><labelclass="control-label col-md-5"for="cpf">CPF/CNPJ:</label><h:inputTextclass="col-md-2"value="#{clienteBean.cliente.cpf_cnpj}"onkeyup="mascara(this, cpfcnpj)"/></div><!-- Fim Terceira Linha --><divclass="form-group"><!-- Quarta Linha --><labelclass="control-label col-md-2"for="sexo">Sexo:</label><divclass="col-md-2"><h:selectOneMenuclass="form-control"id="sexo"value="#{clienteBean.cliente.sexo}"><f:selectItemitemLabel="Selecione"/><f:selectItemitemLabel="Masculino"itemValue="Masculino"/><f:selectItemitemLabel="Feminino"itemValue="Feminino"/></h:selectOneMenu></div><labelclass="control-label col-md-5"for="estado_civil">EstadoCivil:</label><divclass="col-md-2"><h:selectOneMenuid="estado_civil"class="form-control"value="#{clienteBean.cliente.estadocivil}"><f:selectItemitemLabel="Selecione"/><f:selectItemitemLabel="Casado(a)"itemValue="Casado(a)"/><f:selectItemitemLabel="Divorciado(a)"itemValue="Divorciado(a)"/><f:selectItemitemLabel="Separado(a)"itemValue="Separado(a)"/><f:selectItemitemLabel="Solteiro(a)"itemValue="Solteiro(a)"/><f:selectItemitemLabel="Viúvo(a)"itemValue="Viúvo(a)"/></h:selectOneMenu></div></div><!-- Fim Quarta Linha --><divclass="form-group"><!-- Quinta Linha --><labelclass="control-label col-md-2"for="tipo_doc">TipoDocumento:</label><divclass="col-md-2"><h:selectOneMenuid="tipodoc"class="form-control"value="#{clienteBean.cliente.tipodoc}"><f:selectItemitemLabel="Selecione"/><f:selectItemitemLabel="RG"itemValue="RG"/><f:selectItemitemLabel="RNE"itemValue="RNE"/><f:selectItemitemLabel="DOCTO DE CLASSE"itemValue="DOCTO DE CLASSE"/></h:selectOneMenu></div><labelclass="control-label col-md-5"for="numdoc">NºDocumento:</label><h:inputTextid="numdoc"class="col-md-2"value="#{clienteBean.cliente.numdoc}"onkeyup="mascara(this, soNumeros)"/></div><!-- Fim Quinta Linha --><divclass="form-group"><!-- Sexta Linha --><labelclass="control-label col-md-2"for="orgao_emissor">ÓrgãoEmissor:</label><divclass="col-md-2"><h:inputTextid="orgao_emissor"class="form-control"value="#{clienteBean.cliente.orgaodoc}"onkeydown="this.value = this.value.toUpperCase();"onkeyup="this.value = this.value.toUpperCase()"/></div><labelclass="control-label col-md-5"for="data_emissao">Emissão/Validade:</label><h:inputTextid="data_emissao"class="datepicker col-md-1"value="#{clienteBean.cliente.datadoc}"/></div><!-- Fim Sexta Linha --><divclass="form-group"><!-- S�tima Linha --><labelclass="control-label col-md-2"for="cnh">CNH:</label><divclass="col-md-2"><h:inputTextid="cnh"class="form-control"value="#{clienteBean.cliente.numcnh}"/></div><labelclass="control-label col-md-5"for="data_cnh">ValidadeCNH:</label><h:inputTextid="validade_cnh"class="datepicker col-md-1"value="#{clienteBean.cliente.validadecnh}"/></div><!-- Fim S�tima Linha --><divclass="form-group"><!-- Oitava Linha --><labelclass="control-label col-md-2"for="categoria_cnh">CategoriaCNH:</label><divclass="col-md-1"><h:inputTextid="categoria_cnh"class="form-control"value="#{clienteBean.cliente.categoriacnh}"onkeydown="this.value = this.value.toUpperCase();"onkeyup="this.value = this.value.toUpperCase()"/></div><labelclass="control-label col-md-6"for="data_cnh">PrimeiraHabilitação:</label><h:inputTextid="primeira_habilitacao"class="datepicker col-md-1"value="#{clienteBean.cliente.primeiracnh}"/></div><!-- Fim Oitava Linha --><divclass="form-group"><!-- Nona Linha --><labelclass="control-label col-md-2"for="profissao">Profissão:</label><divclass="col-md-3"><h:selectOneMenuid="profissoes"class="form-control"value="#{clienteBean.cliente.profissao}"converter="profissaoConverter"immediate="true"><f:selectItemitemLabel="Selecione"/><f:selectItemsvalue="#{clienteBean.profissoes}"var="profissao"itemValue="#{profissao}"itemLabel="#{profissao.descricao}"/></h:selectOneMenu></div><labelclass="control-label col-md-4"for="status">Status:</label><h:outputLabelclass="control-label col-md-1"value="#{clienteBean.cliente.status}"/></div><!-- Fim Nona Linha --></h:form></div></div><!-- Fim Formulário --><!-- Tabela de Navegação --><divid="tabela_navegacao"class="row"><divclass="col-md-12"><ulclass="nav nav-tabs"><liclass="active"><adata-toggle="tab"href="#endereco">Endereço</a></li><li><adata-toggle="tab"href="#contato">Contato</a></li></ul><divclass="tab-content"><divid="endereco"class="tab-pane fade in active"><divclass="form-horizontal"><divclass="form-group"><!-- Primeira Linha --><labelclass="control-label col-md-2"for="logradouro">Logradouro:</label><divclass="col-md-5"><h:inputTextid="logradouro"class="form-control"maxlength="200"value="#{clienteBean.cliente.logradouro}"/></div><labelclass="control-label col-md-2"for="numero">Número:</label><divclass="col-md-1"><h:inputTextid="numero"class="form-control"maxlength="10"value="#{clienteBean.cliente.numero}"onkeyup="mascara(this, soNumeros)"/></div></div><!-- Fim Primeira Linha --><divclass="form-group"><!-- Segunda Linha --><labelclass="control-label col-md-2"for="complemento">Complemento:</label><divclass="col-md-2"><h:inputTextid="complemento"class="form-control"value="#{clienteBean.cliente.complemento}"/></div><labelclass="control-label col-md-5"for="numero">Bairro:</label><divclass="col-md-2"><h:inputTextid="bairro"class="form-control"maxlength="150"value="#{clienteBean.cliente.bairro}"/></div></div><!-- Fim Segunda Linha --><divclass="form-group"><!-- Terceira Linha --><labelclass="control-label col-md-2"for="cidade">Cidade:</label><divclass="col-md-3"><h:inputTextid="cidade"class="form-control"maxlength="150"value="#{clienteBean.cliente.cidade}"/></div><labelclass="control-label col-md-4"for="estado">Estado:</label><divclass="col-md-2"><h:selectOneMenuid="estado"class="form-control"value="#{clienteBean.cliente.uf}"><f:selectItemitemLabel="Selecione"/><f:selectItemsvalue="#{clienteBean.estados}"var="estado"itemLabel="#{estado.descricao}"itemValue="#{estado}"/></h:selectOneMenu></div></div><!-- Fim Terceira Linha --><divclass="form-group"><!-- Quarta Linha --><labelclass="control-label col-md-2"for="cep">CEP:</label><divclass="col-md-1"><h:inputTextid="cep"class="form-control"value="#{clienteBean.cliente.cep}"onkeyup="mascara(this, cep)"/></div></div><!-- Fim Quarta Linha --></div></div><divid="contato"class="tab-pane fade"><divclass="form-horizontal"><divclass="form-group"><!-- Primeira Linha --><labelclass="control-label col-md-2"for="email">E-mail:</label><divclass="col-md-5"><h:inputTextid="email"class="form-control"value="#{clienteBean.cliente.email}"/></div><labelclass="control-label col-md-2"for="celular">Celular:</label><divclass="col-md-2"><h:inputTextid="celular"class="form-control"value="#{clienteBean.cliente.celular}"onkeyup="mascara(this, celular)"/></div></div><!-- Fim Primeira Linha --><divclass="form-group"><!-- Segunda Linha --><labelclass="control-label col-md-2"for="telefone">TelefoneFixo:</label><divclass="col-md-2"><h:inputTextid="telefone"class="form-control"value="#{clienteBean.cliente.telefone}"onkeyup="mascara(this, telefone)"/></div><labelclass="control-label col-md-5"for="telefone_comercial">TelefoneComercial:</label><divclass="col-md-2"><h:inputTextid="telefone_comercial"class="form-control"value="#{clienteBean.cliente.telefonecomercial}"onkeyup="mascara(this, telefone)"/></div></div><!-- Fim Segunda Linha --><divclass="form-group"><!-- Terceira Linha --><labelclass="control-label col-md-2"for="cidade">TelefoneRecado:</label><divclass="col-md-2"><h:inputTextid="telefone_recado"class="form-control"value="#{clienteBean.cliente.telefonerecado}"onkeyup="mascara(this, telefone)"/></div></div><!-- Fim Terceira Linha --></div></div></div></div></div><!-- Fim Tabela de Navegaçãoo --></div><!-- Fim "Principal" --></h:body>
`
Obrigada.
F
felipesntsassis
Olá sgrandini.
Observei seu código e em relação ao front aparentemente está tudo certo. Pode nos mostrar o código completo do seu bean e se possível do faces-config.xml também?
privateClientecliente=newCliente();privateProfissaoprofissao;privateList<Cliente>lista;privateList<TipoPessoa>tipopessoas;privateList<Sexo>sexos;privateList<EstadoCivil>estadoscivis;privateList<Uf>estados;privateList<Corretor>corretores;privateList<Profissao>profissoes;privateStringnomeCliente;privateStringdiretorio="C:\\seguros\\arquivos\\";privateUploadedFilefile;privateStreamedContentarquivoRetorno;privateintrelatorioSelecionado;publicClienteBean(){limpar();}privatevoidlimpar(){cliente=newCliente();}publicStringalterar(){return"/restrito/cadastro_cliente";}publicvoidsalvar(){this.cliente.setStatus("Ativo");ClienteRNclienteRN=newClienteRN();clienteRN.salvar(this.cliente);limpar();}publicStringativar(){if(this.cliente.getStatus().contains("Ativo")){this.cliente.setStatus("Inativo");}else{this.cliente.setStatus("Ativo");}ClienteRNclienteRN=newClienteRN();clienteRN.salvar(this.cliente);returnnull;}publicvoidbuscarPorNome(){ClienteRNclienteRN=newClienteRN();this.lista=clienteRN.buscarPorNome(getNomeCliente());}publicbooleanisEditando(){returnthis.cliente.getCodigo()!=null;}publicvoidtransferirArquivo(StringfileName,InputStreamin){try{OutputStreamout=newFileOutputStream(newFile(diretorio+fileName));intreader=0;byte[]bytes=newbyte[(int)getFile().getSize()];while((reader=in.read(bytes))!=-1){out.write(bytes,0,reader);}in.close();out.flush();out.close();}catch(IOExceptione){System.out.println(e.getMessage());}}publicvoidupload(){StringextValidate;if(getFile()!=null){Stringext=getFile().getFileName();if(ext!=null){extValidate=ext.substring(ext.indexOf(".")+1);}else{extValidate="null";}if(extValidate.equals("pdf")){try{transferirArquivo(getFile().getFileName(),getFile().getInputstream());}catch(IOExceptionex){Logger.getLogger(ClienteBean.class.getName()).log(Logger.Level.FATAL,null,ex);FacesUtil.addErrorMessage("Erro ao enviar arquivo!");}FacesUtil.addInfoMessage("Arquivo enviado com sucesso!");}else{FacesUtil.addWarnMessage("Apenas arquivo com extensão .pdf!");}}else{FacesUtil.addErrorMessage("Selecione um arquivo!");}}publicvoidabrirDialogo(){Map<String,Object>opcoes=newHashMap<String,Object>();opcoes.put("modal",true);opcoes.put("draggable",false);opcoes.put("resizable",false);opcoes.put("contentHeight",150);opcoes.put("contentWidth",500);RequestContext.getCurrentInstance().openDialog("AdicionarProfissao",opcoes,null);}publicStreamedContentgetArquivoRetorno(){StringnomeRelatorioJasper;StringnomeRelatorioSaida;RelatorioUtilrelatorioUtil=newRelatorioUtil();try{switch(relatorioSelecionado){case1:nomeRelatorioJasper="RelacaoClientes";nomeRelatorioSaida="RelacaoClientes";this.arquivoRetorno=relatorioUtil.geraRelatorio(nomeRelatorioJasper,nomeRelatorioSaida,RelatorioUtil.RELATORIO_PDF);break;case2:nomeRelatorioJasper="FichaCliente";nomeRelatorioSaida="FichaCliente";this.arquivoRetorno=relatorioUtil.geraRelatorio(nomeRelatorioJasper,nomeRelatorioSaida,RelatorioUtil.RELATORIO_PDF);break;}returnthis.arquivoRetorno;}catch(UtilExceptione){FacesUtil.addErrorMessage("Não foi possível gerar o relatório!");returnnull;}}publicvoidsetArquivoRetorno(StreamedContentarquivoRetorno){this.arquivoRetorno=arquivoRetorno;}publicintgetRelatorioSelecionado(){returnrelatorioSelecionado;}publicvoidsetRelatorioSelecionado(intrelatorioSelecionado){this.relatorioSelecionado=relatorioSelecionado;}publicStringgetNomeCliente(){returnnomeCliente;}publicvoidsetNomeCliente(StringnomeCliente){this.nomeCliente=nomeCliente;}publicUploadedFilegetFile(){returnfile;}publicvoidsetFile(UploadedFilefile){this.file=file;}publicClientegetCliente(){returncliente;}publicvoidsetCliente(Clientecliente){this.cliente=cliente;}publicProfissaogetProfissao(){returnprofissao;}publicvoidsetProfissao(Profissaoprofissao){this.profissao=profissao;}publicList<Cliente>getLista(){if(this.lista==null){ClienteRNclienteRN=newClienteRN();this.lista=clienteRN.buscarPorNome(nomeCliente);}returnlista;}publicList<TipoPessoa>getTipopessoas(){returntipopessoas=Arrays.asList(TipoPessoa.values());}publicList<Sexo>getSexos(){returnsexos=Arrays.asList(Sexo.values());}publicList<EstadoCivil>getEstadoscivis(){returnestadoscivis=Arrays.asList(EstadoCivil.values());}publicList<Uf>getEstados(){returnestados=Arrays.asList(Uf.values());}publicList<Corretor>getCorretores(){if(this.corretores==null){CorretorRNcorretorRN=newCorretorRN();this.corretores=corretorRN.listar();}returncorretores;}publicvoidsetCorretores(List<Corretor>corretores){this.corretores=corretores;}publicList<Profissao>getProfissoes(){if(this.profissoes==null){ProfissaoRNprofissaoRN=newProfissaoRN();this.profissoes=profissaoRN.listar();}returnprofissoes;}