Fórum Erro no mapeamento entre paginas jsf #511616

23/02/2015

0

Olá galera, estou iniciando na programação web e me deparei com um erro ao qual não consegui solucioná-lo, criei 3 arquivos xhtml(index, usuario, mostraUsuario), o programa captura os dados que o usuário cadastrou na página usuario e ao clicar em salvar deveria mostrar os dados cadastrados na página mostraUsuario, porém estou com o seguinte problema: ao exibir a página mostraUsuario os dados fornecidos na página usuário não são mostrados.

Arquivo index.xhtml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Gerenciador Financeiro Pessoal</title>
</head>
<body>
	<h1>Gerenciador Financeiro Pessoal</h1>
	<h:form>
		<h:commandLink action = "#{usuarioBean.novo}"> Novo usuário </h:commandLink>
	</h:form>
</body>
</html>


Arquivo usuario.xhtml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Cadastro de Usuários</title>
</h:head>
<h:body>
<h1>Cadastro de Usuários</h1>
<hr/>
<h:form>
	<h:messages/>
	<h:panelGrid columns = "2">
		<h:outputLabel value = "Nome:" for = "nome"/>
		<h:inputText id = "nome" label = "Nome" value = "#{usuarioBean.nome}" required = "true"/>
		<h:outputLabel value = "e-Mail:" for = "email"/>
		<h:inputText id = "email" label = "e-Mail" value = "#{usuarioBean.email}"/>
		<h:outputLabel value = "Senha:" for = "senha"/>
		<h:inputSecret id = "senha" label = "Senha" value = "#{usuarioBean.senha}" required = "true"/>
		<h:outputLabel value = "Confirmar Senha:" for = "confirmarsenha"/>
		<h:inputSecret id = "confirmarsenha" label = "Confirmar Senha" value = "#{usuarioBean.confirmaSenha}" required = "true"/>
		<h:outputText/>
		<h:commandButton action = "#{usuarioBean.salvar}" value = "Salvar"/>
	</h:panelGrid>
</h:form>		
<hr/>
</h:body>
</html>


Arquivo mostraUsuario.xhtml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Usuário Cadastrado</title>
</h:head>
<h:body>
	<h1>Usuário Cadastrado</h1>
	<hr/>
	Nome:	<h:outputText value = "#{usuarioBean.nome}"/> <br/>
	
	e-Mail:	<h:outputText value = "#{usuarioBean.email}"/> <br/>
			
		 
	Senha:	<h:outputText value = "#{usuarioBean.senha}"/> <br/>
	<hr/>
	<h:form>
		<h:commandLink action="usuario" value = "Início"/>
	</h:form>

</h:body>
</html>


Classe UsuarioBean:
package financeiro.web;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

@ManagedBean(name = "usuarioBean")
@RequestScoped
public class UsuarioBean {
	private String nome;
	private String email;
	private String senha;
	private String confirmaSenha;
	
	
	public String novo(){
		return "usuario";
	}
	
	public String salvar(){
		FacesContext context = FacesContext.getCurrentInstance();
		if(!this.senha.equalsIgnoreCase(this.confirmaSenha)){
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Senha confirmada incorretamente",""));
			return "usuario";
		}
		//salva o usuário
		return "mostraUsuario?faces-redirect=true";
	}
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public String getConfirmaSenha() {
		return confirmaSenha;
	}
	public void setConfirmaSenha(String confirmaSenha) {
		this.confirmaSenha = confirmaSenha;
	}
	
	
	
}
Alisson Medeiros

Alisson Medeiros

Responder

Post mais votado

23/02/2015

Bom, falta alguns pontos importantes no seu UsuarioBean, vejamos

1 - No seu método salvar() não vi em nenhum momento ele salvar de fato o objeto. Só retorna o usuário para a página mostraUsuario.
2 - Depois de salvar() você tem que gravar em algum atributo o usuário salvo, para poder recuperar no XHTML.

Ronaldo Lanhellas

Ronaldo Lanhellas
Responder

Gostei + 1

Mais Posts

24/02/2015

Alisson Medeiros

Bom, falta alguns pontos importantes no seu UsuarioBean, vejamos

1 - No seu método salvar() não vi em nenhum momento ele salvar de fato o objeto. Só retorna o usuário para a página mostraUsuario.
2 - Depois de salvar() você tem que gravar em algum atributo o usuário salvo, para poder recuperar no XHTML.


Ronaldo desculpe a pergunta pois sou iniciante na programação web, mas poderia ser mais claro dando um exemplo de como eu salvar no atributo pra recuperar no xhtml?
Responder

Gostei + 0

24/02/2015

Ronaldo Lanhellas

Você deve ter algum método específico para salvar no banco de dados, certo ? Se não tiver então você primeiro tem que estudar como fazer a comunicação com o Banco de Dados via Java.

Se tiver este método você deve chamá-lo passando o objeto que deseja salvar no banco. Depois disso basta armazenar esse objeto em alguma variável dentro do seu ManagedBean, para que você possa recuperá-lo via XHTML.
Responder

Gostei + 1

24/02/2015

Alisson Medeiros

Você deve ter algum método específico para salvar no banco de dados, certo ? Se não tiver então você primeiro tem que estudar como fazer a comunicação com o Banco de Dados via Java.

Se tiver este método você deve chamá-lo passando o objeto que deseja salvar no banco. Depois disso basta armazenar esse objeto em alguma variável dentro do seu ManagedBean, para que você possa recuperá-lo via XHTML.


Vlw ronaldo, ajudou bastante !
Responder

Gostei + 0

25/02/2015

Ronaldo Lanhellas

Disponha.
Responder

Gostei + 0

25/02/2015

Ronaldo Lanhellas

Disponha.
Responder

Gostei + 0

25/02/2015

Ronaldo Lanhellas

Disponha.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar