Problema ao salvar registro JSF

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

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

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