Duvida JSF

3 respostas
vjfenix

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..

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";
	}

}

JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<html>
<body>
<f:view>
	<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="#{candidato.id}" /></td>
			</tr>
			<tr>
				<td>Nome:</td>
				<td><h:inputText value="#{candidato.nome}" /></td>
			</tr>
			<tr>
				<td>Bairro:</td>
				<td><h:inputText value="#{candidato.bairro}" /></td>
			</tr>
				<td>Cidade:</td>
				<td><h:inputText value="#{candidato.cidade}" size="1" /></td>
			</tr>
			<tr>
				<td>Prefixo:</td>
				<td><h:inputText value="#{candidato.prefixo}" size="1"/></td>
			</tr>	
				<td>Telefone:</td>
				<td><h:inputText value="#{candidato.telefone}" size="8"/></td>
			</tr>
			<tr>
				<td>Complemento:</td>
				<td><h:inputText value="#{candidato.complemento}" /></td>
			</tr>
			<tr>
				<td>Municipio:</td>
				<td><h:inputText value="#{candidato.municipio}" /></td>
			</tr>
			<tr>
				<td>Logradouro:</td>
				<td><h:inputText value="#{candidato.logradouro}" /></td>
			</tr>
			<tr>
				<td>Rg:</td>
				<td><h:inputText value="#{candidato.rg}" /></td>
			</tr>
			<tr>
				<td>Cpf:</td>
				<td><h:inputText value="#{candidato.cpf}" /></td>
			</tr>
			<tr>
				<td>Dta Nascimento:</td>
				<td><h:inputText value="#{candidato.dataNascimento}" /></td>
			</tr>
			<tr>
				<td>Escolaridade:</td>
				<td><h:inputText value="#{candidato.escolaridade}" /></td>
			</tr>
			<tr>
				<td>Sexo:</td>
				<td><h:inputText value="#{candidato.sexo}" /></td>
			</tr>
			<tr>
				<td>Estado Civil:</td>
				<td><h:inputText value="#{candidato.estadoCivil}" /></td>
			</tr>
			<tr>
				<td>Nacionalidade:</td>
				<td><h:inputText value="#{candidato.nacionalidade}" /></td>
			</tr>
			<tr>
				<td>Observacao:</td>
				<td><h:inputText value="#{candidato.observacao}" /></td>
			</tr>
		</table>
		<p><h:commandButton value="ok" action="#{candidatofacade.inserircandidato}"/> 
		</p>
	 
	</h:form>
	<br>
</f:view>
</body>
</html>
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
	<navigation-rule>
		<from-view-id>/buscar.jsp</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/sucesso_busca.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>failure</from-outcome>
			<to-view-id>/falha_busca.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	
	<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>
</faces-config>

3 Respostas

D

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???

vjfenix

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???

Daniel,

Ele não está pegando… você teria algum exemplo com EL para que eu pudesse entender melhor??

D

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.

Criado 19 de julho de 2008
Ultima resposta 20 de jul. de 2008
Respostas 3
Participantes 2