[Resolvido] Managed bean não exibindo dados

Boa noite, GUJ. Estou estudando sobre JSF 2 e estou tendo um probleminha e gostaria de saber onde estou errando.

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:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"      >
    <h:head>
        <title></title>
    </h:head>

    <h:body>

	   <h:outputText value="#{UsuarioBean.usuario.nome}"/>

    </h:body>
</html>

Usuario.java

package com.marcelodeandrade.pojo;

public class Usuario {
	
	private String nome;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

}

UsuarioBean.java

package com.marcelodeandrade.bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import com.marcelodeandrade.pojo.Usuario;

@ManagedBean(name = "UsuarioBean")
@RequestScoped
public class UsuarioBean {

		private Usuario usuario;
		
		public UsuarioBean(){
			System.out.println("####################");
			
			Usuario usuario = new Usuario();
			usuario.setNome("Marcelo");
			
		}

		public Usuario getUsuario() {
			return usuario;
		}

		public void setUsuario(Usuario usuario) {
			this.usuario = usuario;
		}	

}

Ele não exibe o nome, gostaria de saber o que droga estou fazendo errado.

Boa noite pessoal!

Como você mapeou o jsf para ser acionado no seu web.xml? E por qual URL você está acessando?

Olá, Hebert. Meus xml estão dessa forma:

web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>ChatJSF</display-name> <welcome-file-list> <welcome-file>index.xhtml</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> </web-app>
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_1.xsd"
    version="2.1">

</faces-config>

E por qual url você está chamando a aplicação?

Me perdoe. A URL é:

http://localhost:8080/ChatJSF/faces/index.xhtml

Ainda não obtive resultado. Tentei deixand o output dentro da tag forma mas sem resultados.

Reproduzi o seu projeto e realmente não exibe o nome. Alterei o web.xml para:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>TesteGuj</display-name>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
</web-app>

deixano para acessar com nomeDoArquivo.jsf os padrões faces.

no teu usuariobean, você está criando um novo usuario e dando a este o nome marcelo, por isso não aparece. Olha teu construtor aqui:

private Usuario usuario;  
          
        public UsuarioBean(){  
            System.out.println("####################");  
              
            Usuario usuario = new Usuario();  
            usuario.setNome("Marcelo");  
              
        }

Note que você colocou Usuario usuario = new Usuario(), então você não esta utilizando o objeto da tua classe. Altere o contrutor para utilizar o da classe:

        public UsuarioBean(){  
            System.out.println("####################");  
            usuario = new Usuario();
            usuario.setNome("Marcelo");  
              
        }  
  

veja se agora funciona

Obrigado pela ajuda, andre.froes.

O bean ficou da seguinte forma:

[code]package com.marcelodeandrade.bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;

import com.marcelodeandrade.pojo.Usuario;

@ManagedBean(name = “UsuarioBean”)
public class UsuarioBean {

	private Usuario usuario;
	
	public UsuarioBean(){
		
		System.out.println("####################");
		
		this.usuario = new Usuario();
		this.usuario.setNome("Marcelo");
		        
		        System.out.println(this.usuario.getNome());
		
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}	

}[/code]