Galera… tô construindo uma pequena aplicação JSF + RICHFACES + HIBERNATE + JPA e encontrei o seguinte problema ao rodar minha primeira página jsp construída:
java.lang.ExceptionInInitializerError
Caused by:
org.hibernate.HibernateException - /hibernate.cfg.xml not found
Sei que ele não tá encontrando o cfg.xml do hibernate, porém esse xml existe e eu o coloquei na pasta WEB-INF junto com WEB.xml e FacesConfig.xml
publicvoidsalvar(ClientesBeanclientes){Sessionsession=factory.openSession();if(session!=null){try{// Inicio da Trasacaosession.beginTransaction();// Salva o objeto no bancosession.save(clientes);// Commita a transacao(conclui)session.getTransaction().commit();}catch(Exceptione){// cancela a transacao, o banco nao sofre alteracaoe.printStackTrace();session.getTransaction().rollback();}finally{// fecha a sessaosession.close();}}else{thrownewRuntimeException("Sessão Inválida.");}}
JSP(faço bind dos campos do meu formulário com os atributos do meu bean)
<f:view><h:form><rich:panelid="cadastrarCliente"style="width: 600px;"><f:facetname="header"><h:outputTextvalue="Cadastro de Clientes"></h:outputText></f:facet><h:panelGridcolumns="6"><h:column><h:outputTextvalue="Nome:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.nome}"/></h:column><h:column><h:outputTextvalue="Endereço:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.endereco}"/></h:column><h:column><h:outputTextvalue="Bairro:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.bairro}"/></h:column><h:column><h:outputTextvalue="Cidade:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.cidade}"/></h:column><h:column><h:outputTextvalue="UF:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.uf}"/></h:column><h:column><h:outputTextvalue="CEP:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.cep}"/></h:column><h:column><h:outputTextvalue="Telefone:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.telefone}"/></h:column><h:column><h:outputTextvalue="E-mail:"/></h:column><h:column><h:inputTextvalue="#{ClientesBean.email}"/></h:column></h:panelGrid><h:commandButtonvalue="Cadastrar"action=""}"></h:commandButton></rich:panel></h:form></f:view>
Agora note que a action do botão Cadastrar está vazio… Minha dúvida é:
Como como é que vou chamar a ação de gravar o cliente na minha JSP?
Alguém pode citar um exemplo?
Dá uma forcinha ai galera…
L
luBS
Vc deve ter algum ManagedBean do JSF certo? configurado dentro de faces-config.xml se nao me engano, provavelmente seu “ClientesBean” pode ser um ManagedBean já.
Dessa forma é só criar um metodo para salvar dentro do ManagedBean que salve o cliente, referenciando dessa forma na pagina: