Olá Pessoal!!
Estou estudando Jsf e estou tendo algumas duvida… Estou criando um formulario para gravar as informações no BD, quando dou submit ele retorna a mesma tela sem inserir as informações… se alguém puder ajudar…
[code]public String inserirCandidato() {
FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) ctx
.getExternalContext().getRequest();
CandidatoVo vo = new CandidatoVo();
CandidatoBo bo = new CandidatoBo();
vo.setId((Integer.parseInt((String) request.getParameter("id"))));
vo.setNome(request.getParameter("nome"));
vo.setPrefixo(Integer
.parseInt((String) request.getParameter("prefixo")));
vo.setBairro(request.getParameter("bairro"));
vo.setCidade(request.getParameter("cidade"));
vo.setComplemento(request.getParameter("complemento"));
vo.setCpf(Integer.parseInt(request.getParameter("cpf")));
// vo.setEscolaridade(Object.class(request.getParameter("escolaridade"));
vo.setLogradouro(request.getParameter("logradouro"));
vo.setMunicipio(request.getParameter("municipio"));
bo.inserir(vo);
return "sucess";
}
}[/code]
JSP
[code]<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
Inserir Candidato
Entre com os dados abaixo
| Matricula: |
|
| Nome: |
|
| Bairro: |
|
Cidade: |
|
| Prefixo: |
|
Telefone: |
|
| Complemento: |
|
| Municipio: |
|
| Logradouro: |
|
| Rg: |
|
| Cpf: |
|
| Dta Nascimento: |
|
| Escolaridade: |
|
| Sexo: |
|
| Estado Civil: |
|
| Nacionalidade: |
|
| Observacao: |
|
</h:form>
<br>
</f:view>
[/code]
[code]<?xml version="1.0"?>
/buscar.jsp
success
/sucesso_busca.jsp
failure
/falha_busca.jsp
<navigation-rule>
<from-view-id>/inserir.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/sucesso_insercao.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/falha_insercao.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/inserirCandidato.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/sucesso_insercao.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/falha_insercao.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>agenda</managed-bean-name>
<managed-bean-class>br.com.junior.bean.AgendaDB</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>candidato</managed-bean-name>
<managed-bean-class>br.com.csj.bean.CandidatoVo</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
[/code]
Eu nunca peguei o parametros do atraves de um request.
Eu faço minhas alterações através do EL alterado o objeto que eu quero inserir diretamente.
Vc já confirmou se ele está pegando os parâmetros a seram inseridos???
[quote=Daniel.F]Eu nunca peguei o parametros do atraves de um request.
Eu faço minhas alterações através do EL alterado o objeto que eu quero inserir diretamente.
Vc já confirmou se ele está pegando os parâmetros a seram inseridos???
[/quote]
Daniel,
Ele não está pegando… você teria algum exemplo com EL para que eu pudesse entender melhor??
Então vamos ver se dar certo.
Primeiro em JSF vc cria uma classe uma que irá processar suas regras de negócio neste caso as
interações com o banco de dados e dentro desta vc uma instancia do objeto que vai inserir
no banco de dados e atraves da El vc altera os parametros deste objeto.
Esta classe que processa as regras de negócio tem que ser declarada no faces-config não o
objeto que vc quer inserir.
Pra arrumar seu código acho que só seguir os passos:
Criar uma instancia do CandidatoVO na sua classe que processa as regras de negocio vou supor
que esta classe se chama CandidatoMB.
public CandidatoVO bo=new CandidatoVO():
public String inserirCandidato() {
bo.inserir(vo);
return "sucess";
}
}
Declarar o candidatoMB como managedbean no faces-config.xml.
<managed-bean>
<managed-bean-name>candidatoMB </managed-bean-name>
<managed-bean-class>br.com.csj.bean.CandidatoMB </managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
E acessar as propiedades do objeto atraves da EL na sua jsp.
<h:form >
<center>
<h2>Inserir Candidato</h2>
</center>
<br>
<h3>Entre com os dados abaixo</h3>
<table>
<tr>
<td>Matricula:</td>
<td><h:inputText value="#{candidatoMB.bo.id}" /></td>
</tr>
<tr>
<td>Nome:</td>
<td><h:inputText value="#{candidatoMB.bo.nome}" /></td>
</tr>
<tr>
<td>Bairro:</td>
<td><h:inputText value="#{candidatoMB.bo.bairro}" /></td>
</tr>
<td>Cidade:</td>
<td><h:inputText value="#{candidatoMB.bo.cidade}" size="1" /></td>
</tr>
<tr>
<td>Prefixo:</td>
<td><h:inputText value="#{candidatoMB.bo.prefixo}" size="1"/></td>
</tr>
<td>Telefone:</td>
<td><h:inputText value="#{candidatoMB.bo.telefone}" size="8"/></td>
</tr>
<tr>
<td>Complemento:</td>
<td><h:inputText value="#{candidatoMB.bo.complemento}" /></td>
</tr>
<tr>
<td>Municipio:</td>
<td><h:inputText value="#{candidatoMB.bo.municipio}" /></td>
</tr>
<tr>
<td>Logradouro:</td>
<td><h:inputText value="#{candidatoMB.bo.logradouro}" /></td>
</tr>
<tr>
<td>Rg:</td>
<td><h:inputText value="#{candidatoMB.bo.rg}" /></td>
</tr>
<tr>
<td>Cpf:</td>
<td><h:inputText value="#{candidatoMB.bo.cpf}" /></td>
</tr>
<tr>
<td>Dta Nascimento:</td>
<td><h:inputText value="#{candidatoMB.bo.dataNascimento}" /></td>
</tr>
<tr>
<td>Escolaridade:</td>
<td><h:inputText value="#{candidatoMB.bo.escolaridade}" /></td>
</tr>
<tr>
<td>Sexo:</td>
<td><h:inputText value="#{candidatoMB.bo.sexo}" /></td>
</tr>
<tr>
<td>Estado Civil:</td>
<td><h:inputText value="#{candidatoMB.bo.estadoCivil}" /></td>
</tr>
<tr>
<td>Nacionalidade:</td>
<td><h:inputText value="#{candidatoMB.bo..nacionalidade}" /></td>
</tr>
<tr>
<td>Observacao:</td>
<td><h:inputText value="#{candidatoMB.bo.observacao}" /></td>
</tr>
</table>
<p><h:commandButton value="ok" action="#{candidatoMB.bo.inserir}"/>
</p>
Se não der certo posta ai.