Joule
Fevereiro 23, 2011, 1:17am
#1
Olá pessoal! estou tendo um problema em um projeto de estudo que estou fazendo, eu não consigo exibir a pagina mostraUsuario.xhtml… já fiz e refiz e não vejo onde pode estar o problema!
Usuario.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!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=UTF-8" />
<title>Cadastro de Usuários</title>
</h:head>
<h:body>
<h1>Cadastro de Usuário</h1>
<hr />
<h:form>
<h:panelGrid cojumns="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}" requerid="true"/>
<h:outputLabel value="Confirmar Senha:" for="confirmasenha" />
<h:inputSecret id="confirmasenha" label="Confirmar Senha" value="#{usuarioBean.confirmaSenha}" requerid="true" />
<h:outputText />
<h:commandButton action="#{usuarioBean.salvar}" value="Salvar" />
</h:panelGrid>
</h:form>
<hr />
</h:body>
</html>
mostraUsuario.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!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=UTF-8" />
<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:outputLink value="mailto:#{usuaroBean.email}">
<h:outputText value="#{usuarioBean.email}" />
</h:outputLink><br/>
Senha: <h:outputText value="#{usuarioBean.senha}" /><br/>
<hr />
<h:form>
<h:commandLink action="inicio" value="Inicio"/>
</h:form>
</h:body>
</html>
usuariobean.java
package financeiro.web;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
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 incorreta",""));
return "usuario";
}
//salva o usuário
return "sucerro";
}
@ManagedProperty(value="#{param}")
private Map<String, String> parametros;
public Map<String, String> getParametros() {
return parametros;
}
public void setParametros(Map<String, String> parametros) {
this.parametros = parametros;
}
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;
}
}
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>inicio</from-outcome>
<to-view-id>/index.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>usuario</from-outcome>
<to-view-id>/usuario.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/usuario.xhtml</from-view-id>
<navigation-case>
<from-action>#{usuarioBean.salvar}</from-action>
<from-outcome>sucesso</from-outcome>
<to-view-id>/mostraUsuario.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
index.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!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/jsp/jstl/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Gerenciador Financeiro Pessoal</title>
</h:head>
<h:body>
<h1>Gerenciador Financeiro Pessoal</h1>
<h:form>
<h:commandLink action="#{usuarioBean.novo}">Novo usuário</h:commandLink>
</h:form>
</h:body>
</html>
Caro Joule,
Você não está conseguindo exibir a pagina mostraUsuario.xhtml devido ao erro de digitação no seu código.
Erro está na linha 32 do código fonte “UsuarioBean.java”
public String salvar(){
FacesContext context = FacesContext.getCurrentInstance();
if (!this.senha.equalsIgnoreCase(this.confirmaSenha)){
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Senha confirmada incorreta",""));
return "usuario";
}
//salva o usuário
return "sucerro"; // <<<<-------------- AQUI ESTÁ O SEU ERRO DE DIGITAÇÃO
}
Você escreveu “sucerro”
É so trocar por “sucesso” que vai dar certo.
public String salvar(){
FacesContext context = FacesContext.getCurrentInstance();
if (!this.senha.equalsIgnoreCase(this.confirmaSenha)){
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Senha confirmada incorreta",""));
return "usuario";
}
//salva o usuário
return "sucesso";
}
Qualquer dúvida poste aí
Abraços
Joule
Fevereiro 23, 2011, 1:52pm
#3
Obrigado peresjuliao, eu estava preocupado com outras coisas técnicas que esqueci de observa a escrita.
90% dos erros de programação vem da sintaxe.
Mas de qualquer forma estamos aí pra qualquer coisa.
Abraços
Joule
Agosto 11, 2011, 10:41pm
#5
Olá pessoal, resolvi fazer o mapeamento via annotations e não usar o mapeamento via faces-config.xml ( usando o mapeamento via faces-config.xml funciona ), eu refiz o projeto todo e aparentemente funcionando, eu preencho todos os campos e quando clico em “salvar” os campos senhas ficam em branco e não passa para a pagina “mostraUsuario.xhtml”.
minhas libs: commons-beanutils-1.8.3.jar, commons-collections-3.2.1.jar, commons-digester-2.1.jar, commons-logging-1.1.1.jar, jsf-api.jar, jsf-impl.jar e jstl-impl-1.2.jar.
index.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!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=UTF-8" />
<title>Gerenciador Financeiro Pessoal</title>
</h:head>
<h:body>
<h1>Gerenciador Financeiro Pessoal</h1>
<h:form>
<h:commandLink action="#{usuarioBean.novo}">Novo usuário</h:commandLink>
</h:form>
</h:body>
</html>
mostraUsuario.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!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=UTF-8" />
<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:outputLink value="mailto:#{usuarioBean.email}" >
<h:outputText value="#{usuarioBean.email}" />
</h:outputLink><br/>
Senha: <h:outputText value="#{usuarioBean.senha}"/>
<hr />
<h:form>
<h:commandLink action="inicio" value="Início" />
</h:form>
</h:body>
</html>
usuario.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!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=UTF-8" />
<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="confirmaSenha" />
<h:inputSecret id="confirmaSenha" 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>
UsuarioBean.java
package financeiro.web;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
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;
@ManagedProperty(value="#{param}")
private Map<String, String> parametros;
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 usuario
return "sucesso";
}
public Map<String, String> getParametros() {
return parametros;
}
public void setParametros(Map<String, String> parametros) {
this.parametros = parametros;
}
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;
}
}