Passando parametros para Bean

Não consigo passar o parâmetro para bean …

Jboss as 7 , junto com hibernate 3.5 … somente isso e fica dando esse erro :frowning:

Me ajudem !

Fica dando esse erro :

[code]exception

javax.servlet.ServletException: /publico/usuario.xhtml @29,57 value="#{usuarioBean.usuario.codigo}": Target Unreachable, ‘usuario’ returned null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
root cause

javax.el.PropertyNotFoundException: /publico/usuario.xhtml @29,57 value="#{usuarioBean.usuario.codigo}": Target Unreachable, ‘usuario’ returned null
com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
javax.faces.component.UIInput.validate(UIInput.java:960)
javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
javax.faces.component.UIInput.processValidators(UIInput.java:698)
javax.faces.component.UIForm.processValidators(UIForm.java:253)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)[/code]

Minha Bean

package finaceiro.web;


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

import financeiro.usuario.Usuario;
import financeiro.usuario.UsuarioRN;

@ManagedBean(name="usuarioBean")
@RequestScoped 
public class UsuarioBean {
	
	private Usuario usuario;
	private String confirmaSenha;
	
	public UsuarioBean() {
		
	}
	
	public String novo(){
		this.usuario = new Usuario();
		this.usuario.setAtivo(true);
		return "usuario";
	}
	
	
	
	public String salvar(){
		FacesContext fc = FacesContext.getCurrentInstance();
		
		String senha = this.usuario.getSenha();
		if(!senha.equalsIgnoreCase(confirmaSenha)){
			FacesMessage facesMessage = new FacesMessage("A senha não foi confirmada corretamente");
			fc.addMessage(null, facesMessage);
			return null;
		}
		
		UsuarioRN usuarioRN = new UsuarioRN();
		usuarioRN.salvar(this.usuario);
		return "usuarioSucesso";
	}
	
	
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public String getConfirmaSenha() {
		return confirmaSenha;
	}
	public void setConfirmaSenha(String confirmaSenha) {
		this.confirmaSenha = confirmaSenha;
	}
	
	
	

	
	
}

Minha XHTML :

[code]<?xml version="1.0" encoding="ISO-8859-1" ?>

Usuário

</h:head>

<h:body>

<h1>Cadastro de Usuário</h1>
<hr/>
<h:form id="cadastro">
<h:messages />

<h:inputHidden value="#{usuarioBean.usuario.codigo}" />
<h:inputHidden value="#{usuarioBean.usuario.ativo}" />


	<h:panelGrid columns="2">
	
		<h:outputLabel value="Nome: " for="nome" />
		<h:inputText id="nome" label="Nome" value="#{usuarioBean.usuario.nome}" 
		 required="true" size="30" maxlength="30" requiredMessage="Você não tem nome ?">
			<f:validateLength minimum="10" maximum="30"/> 
		 </h:inputText>
		
		<h:outputLabel value="Data Nascimento: " for="data" />
		<h:inputText id="data" label="Data Nascimento" value="#{usuarioBean.usuario.nascimento}"
		 size="10" maxlength="10" required="true">
				<f:convertDateTime dateStyle="medium"/>
		</h:inputText>
		
		
		<h:outputLabel value="Celular: " for="celular" />
		<h:inputText id="celular" label="Celular" value="#{usuarioBean.usuario.celular}" size="10" />
		
		
		<h:outputLabel value="e-Mail: " for="email"/>			 
		<h:panelGroup>
			<h:inputText id="email" label="e-Mail" value="#{usuarioBean.usuario.email}"
			size="50" maxlength="50" required="true" validatorMessage="e-mail invalido">
				<f:validateRegex pattern="[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_\.]+"/>
			</h:inputText>
			<h:message for="email"/>
		</h:panelGroup>
		
		
		<h:outputLabel value="#{usuarioBean.usuario.idioma}" for="idioma" />
		<h:selectOneMenu id="idioma" value="#{usuarioBean.usuario.idioma}">
			<f:selectItem itemValue="pt_BR" itemLabel="Português"/>
			<f:selectItem itemValue="en_US" itemLabel="English"/>
			<f:selectItem itemValue="es_ES" itemLabel="Espanol"/>
		</h:selectOneMenu>
		
		
		
		<h:outputLabel value="Login: " for="login" />
		<h:inputText id="login" label="Login" value="#{usuarioBean.usuario.login}"
		  size="15" maxlength="15" required="true" 
		  validatorMessage="Login deve ter no minimo 5 e no máximo 15 caracteres e so pode ter os símbolos '.' e '_' .">
				<f:validateRegex pattern="([a-z]|[0-9]|[.]|[_]){5,15}"/>
		</h:inputText>
		
		
		
		<h:outputLabel value="Senha: " for="senha" />
		<h:inputSecret id="senha" label="Senha" value="#{usuarioBean.usuario.senha}" size="10"
		maxlength="10" required="true" redisplay="true" />
		
		<h:outputLabel value="Confirmar Senha: " for="confirmarsenha" />
		<h:inputSecret id="confirmarsenha" label="Confirmar Senha"  
		value="#{usuarioBean.confirmaSenha}" size="10" maxlength="10" required="true" redisplay="true"/>

	</h:panelGrid>
	
	<h:commandButton action="#{usuarioBean.salvar}" value="Salvar" />	
</h:form>
<hr />

</h:body>
</f:view>

[/code]

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" 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>Financeiro</display-name> <welcome-file-list> <welcome-file>index.html</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>*.jsf</url-pattern> </servlet-mapping> </web-app>

O erro diz que seu atributo usuario está nulo.

Voce está instanciando ele no método “novo”. Você deve chamar seu botão novo antes. Caso esteja chamando em outro xhtml, fique atento que você está definindo seu escopo como @RequestScoped

Eu tirei o novo() ;

coloquei o um construtor da dando um new Usuario e SessionScope .
Porem continuar com o mesmo erro…

Desesperado.com !

Modificações :

[code]package finaceiro.web;

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

import financeiro.usuario.Usuario;
import financeiro.usuario.UsuarioRN;

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

private Usuario usuario;
private String confirmaSenha;

public UsuarioBean() {
	usuario = new Usuario();
}

public String salvar(){
	FacesContext fc = FacesContext.getCurrentInstance();
	
	String senha = this.usuario.getSenha();
	if(!senha.equalsIgnoreCase(confirmaSenha)){
		FacesMessage facesMessage = new FacesMessage("A senha não foi confirmada corretamente");
		fc.addMessage(null, facesMessage);
		return null;
	}
	
	UsuarioRN usuarioRN = new UsuarioRN();
	usuarioRN.salvar(this.usuario);
	return "usuarioSucesso";
}


public Usuario getUsuario() {
	return usuario;
}
public void setUsuario(Usuario usuario) {
	this.usuario = usuario;
}
public String getConfirmaSenha() {
	return confirmaSenha;
}
public void setConfirmaSenha(String confirmaSenha) {
	this.confirmaSenha = confirmaSenha;
}

}
[/code]

Cara, o que vc quer fazer? salvar um usuario de acordo com uma senha definida em outro objeto?
Verifica se vc está fazendo certo para pegar o objeto da sessão. Pesquise sobre injeção de dependênica no jsf, é bem mais prático para pegar objetos da sessão.out
Ah, o bean do objeto que vc quer pegar tem que esta session escoped tambem.

É um projeto que o livro “Programação Java para a Web” faz durante a sua leitura …

E ta vindo um monte de buger e o livro nem fala sobre !!

Agora to com um erro no filtro , esse erro eu ja solucionei :slight_smile:

Mexi na pagina , salvei e começou a funcionar o0’

Era algum erro de cache :frowning:

Alguem já leu esse livro e conseguiu fazer o projeto que tem no livro ???
O projeto tem Hibernate + JSF + EJB + Spring Security … :smiley:

Obrigado a todos !!!