Duvida ao chamar método no JSF

8 respostas
S

Boa noite,

Estou tentando inserir no banco utilizando JSF o problema é o seguinte: Quando eu chamo o método de inserir ele simplismente não faz nada, só carrega a pagina e continua na mesma tela sem me retornar erro e não insere no banco. Vale destacar que se eu alterar a query SQL para dar erro uma exceção é lançada na tela, então imagino que o método está sendo chamado. Segue abaixo como se ecnontra meu Faces e meu método.

Minha pagina JSP:

<tr>
				<td><h:commandButton value="Inserir" action="#{usuarioBean.inserir}"/> </td>
				<td><h:commandButton value="Limpar" type="reset"/></td>
</tr>

Minha Configuração no Faces:

<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>
    
    <managed-bean>
    	<managed-bean-name>usuarioBean</managed-bean-name>
    	<managed-bean-class>Control.UsuarioBean</managed-bean-class>
    	<managed-bean-scope>request</managed-bean-scope>
    </managed-bean>

Meu método da classe UsuarioBean:

public String inserir() {		
		RepUsuario ru = new RepUsuario();
		endereco.setCidade(cidade);
		endereco.setEstado(estado);
		endereco.setPais(pais);
		usuario.setEndereco(endereco);
		usuario.setPrivacidade(privacidade);
		ru.inserir(usuario);		
		usuario = new Usuario();
		endereco = new Endereco();
		return "success";		
	}

8 Respostas

tiago.vt

fica dificil ajuda so com esse codigo q vc coloco…coloca a classe inteira do seu managed bean, e a classe do metodo que vc usa pra inserir, vc ta usando jsf 1.x?

S

A classe completa está ae. Não, estou usando JSF 2.0 mais continuo configurando os Bean direto pelo XML e não pelas annotations.
Obrigado

package Control;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;

import Basicas.Cidade;
import Basicas.Endereco;
import Basicas.Estado;
import Basicas.Pais;
import Basicas.PrivacidadeUsuario;
import Basicas.Usuario;
import Repositorio.Conexao;
import Repositorio.RepUsuario;

public class UsuarioBean {
	
	private Usuario usuario = new Usuario();
	private Endereco endereco = new Endereco();
	private Cidade cidade = new Cidade();
	private Estado estado = new Estado();
	private Pais pais = new Pais();
	private PrivacidadeUsuario privacidade = new PrivacidadeUsuario();
	
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public Endereco getEndereco() {
		return endereco;
	}
	
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	
	public Cidade getCidade() {
		return cidade;
	}
	
	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}
	
	public Estado getEstado() {
		return estado;
	}
	
	public void setEstado(Estado estado) {
		this.estado = estado;
	}
	
	public Pais getPais() {
		return pais;
	}
	
	public void setPais(Pais pais) {
		this.pais = pais;
	}
	
	public PrivacidadeUsuario getPrivacidade() {
		return privacidade;
	}
	
	public void setPrivacidade(PrivacidadeUsuario privacidade) {
		this.privacidade = privacidade;
	}
	
	public String inserir() {		
		RepUsuario ru = new RepUsuario();
		endereco.setCidade(cidade);
		endereco.setEstado(estado);
		endereco.setPais(pais);
		usuario.setEndereco(endereco);
		usuario.setPrivacidade(privacidade);		
		ru.inserir(usuario);		
		usuario = new Usuario();
		endereco = new Endereco();
		return "success";		
	}
	
}
Hebert_Coelho

Vc colocou seu botão dentro de um form?

S

Sim, segue abaixo minha JSP:

<%@ 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" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Inserir Usuário</title>
</head>
<body>

<f:view>
	<h:form>
		<center>
		<h2>Inserção</h2>
		<br/>
		<h3>Entre com os dados abaixo</h3>
		<table>
			<tr>
				<td>Email:</td>
				<td><h:inputText value="#{usuarioBean.usuario.email}"/></td>
			</tr>
			<tr>
				<td>Senha:</td>
				<td><h:inputText value="#{usuarioBean.usuario.senha}"/></td>
			</tr>
			<tr>
				<td>Nome:</td>
				<td><h:inputText value="#{usuarioBean.usuario.nome}"/></td>
			</tr>
			<tr>
				<td>Sobrenome:</td>
				<td><h:inputText value="#{usuarioBean.usuario.sobreNome}"/></td>
			</tr>
			<tr>
				<td>Data de Nascimento:</td>
				<td><h:inputText value="#{usuarioBean.usuario.dataNascimento}"/></td>
			</tr>
			<tr>
				<td>Url da Foto:</td>
				<td><h:inputText value="#{usuarioBean.usuario.caminhoFoto}"/></td>
			</tr>
			<tr>
				<td>Reputação:</td>
				<td><h:inputText value="#{usuarioBean.usuario.reputacao}"/></td>
			</tr>
			<tr>
				<td>Privacidade de Informações:</td>
				<td>
					<h:selectOneMenu value="#{usuarioBean.privacidade.idPrivacidade}">                  
          				<f:selectItems value="#{usuarioBean.privacidade.listarPrivacidades}"/>  
    				</h:selectOneMenu>
    			</td>  	
			</tr>
			<tr>
				<td>Cidade:</td>
				<td>
					<h:selectOneMenu value="#{usuarioBean.cidade.id}">                  
          				<f:selectItems value="#{usuarioBean.cidade.listarCidades}"/>  
    				</h:selectOneMenu>
    			</td>  	
			</tr>
			<tr>
				<td>Estado:</td>
				<td>
					<h:selectOneMenu value="#{usuarioBean.estado.id}">
						<f:selectItems value="#{usuarioBean.estado.listarEstados}"/>
					</h:selectOneMenu>
				</td>	
			</tr>
			<tr>
				<td>País:</td>
				<td>
					<h:selectOneMenu value="#{usuarioBean.pais.id}">
						<f:selectItems value="#{usuarioBean.pais.listarPais}"/>
					</h:selectOneMenu>
				</td>	
			</tr>
			<tr>
				<td>Logradouro:</td>
				<td><h:inputText value="#{usuarioBean.endereco.logradouro}"/></td>	
			</tr>
			<tr>
				<td>Número:</td>
				<td><h:inputText value="#{usuarioBean.endereco.numero}"/></td>	
			</tr>
			<tr>
				<td>Bairro:</td>
				<td><h:inputText value="#{usuarioBean.endereco.bairro}"/></td>	
			</tr>
			<tr>
				<td>CEP:</td>
				<td><h:inputText value="#{usuarioBean.endereco.cep}"/></td>	
			</tr>					
			<tr>
				<td><h:commandButton value="Inserir" action="#{usuarioBean.inserir}"/></td>
				<td><h:commandButton value="Limpar" type="reset"/></td>
			</tr>
		</table>
		</center>
	</h:form>
</f:view>

</body>
</html>

Obrigado

Hebert_Coelho

Troca de para <h:head> e faz o mesmo com a body.

S

Estranho jakefrog, quando tento colocar as tag’s h:head e h:body ele da um erro como se não as encontrase. O erro é: Unknown tag(h:head) e para o body é a mesma coisa.

Hebert_Coelho

Falta importar as bibliotecas pelo visto então.

S

Mais todas as outras tag’s estão funcionando menos essas duas que você comentou. A biblioteca que você diz é a do JSF ? Se fosse isso não seria para todas as outras tags estarem com problema ?

Obrigado

Criado 29 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 8
Participantes 3