Re:Erro usando jsf e jpa [Resolvido]

2 respostas
W

Olá amigos. Tô com um trabalho da faculdade, um biblioteca, onde a principio tenho que cadastrar UF’s. Não importa onde eu altere sempre dá o mesmo erro.
Tô usando jpa e jsf. Segue abaixo o erro e parte do código. Se alguém puder dizer onde estou errando, eu agradeço.

Erro:

/cadastroUf.xhtml @14,52 value="#{ufBean.uf.sigla}": Target Unreachable, identifier ‘ufBean’ resolved to null

Classe UfBean.java:

package com.gugawag.projeto.beans;


import java.util.List;

import javax.annotation.ManagedBean;
import javax.enterprise.context.RequestScoped;

import com.gugawag.projeto.modelo.Uf;
import com.gugawag.projeto.repositorio.*;

@ManagedBean
@RequestScoped
public class UfBean {
	
    private Uf uf;
	
	public UfBean(){
		uf = new Uf();
	}
	
	
	

	private UfRepositorio ufRepositorio;

	public Uf getUf() {
		return uf;
	}

	public void setUf(Uf uf) {
		this.uf = uf;
	}
	
	
	public List<Uf> getUfs() {
		return ufRepositorio.getUfs();
	}
	
	
	public String cadastrar(){
		
		/*try{
		Uf ufPesquisado = ufRepositorio.getUf(uf.getSigla());
		if (ufPesquisado != null){
			throw new UfJahCadastradoException("Uf " + uf + " ja cadastrada!");
		}
		}catch (Exception e) {
			// TODO: handle exception
		}*/
		ufRepositorio.cadastrarUf(uf);

	    Util.acrescentaMensagem("uf.cadastrosucesso", new String[]{uf.getSigla()});

		
	
		return null;
	}

	

}
Classe UfRepositório.java


package com.gugawag.projeto.beans;


import java.util.List;

import javax.annotation.ManagedBean;
import javax.enterprise.context.RequestScoped;

import com.gugawag.projeto.modelo.Uf;
import com.gugawag.projeto.repositorio.*;

@ManagedBean
@RequestScoped
public class UfBean {
	
    private Uf uf;
	
	public UfBean(){
		uf = new Uf();
	}
	
	
	

	private UfRepositorio ufRepositorio;

	public Uf getUf() {
		return uf;
	}

	public void setUf(Uf uf) {
		this.uf = uf;
	}
	
	
	public List<Uf> getUfs() {
		return ufRepositorio.getUfs();
	}
	
	
	public String cadastrar(){
		
		/*try{
		Uf ufPesquisado = ufRepositorio.getUf(uf.getSigla());
		if (ufPesquisado != null){
			throw new UfJahCadastradoException("Uf " + uf + " ja cadastrada!");
		}
		}catch (Exception e) {
			// TODO: handle exception
		}*/
		ufRepositorio.cadastrarUf(uf);

	    Util.acrescentaMensagem("uf.cadastrosucesso", new String[]{uf.getSigla()});

		
	
		return null;
	}

	

}
Classe UF.java


package com.gugawag.projeto.modelo;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Uf  implements Serializable {
	@Id @GeneratedValue
	private long codigo;
	private String sigla;
	
	private static final long serialVersionUID = 1L;
	
	public Uf(){
		this(null);
	}
	
	public Uf(String sigla) {
		super();
		this.sigla = sigla;
		
	}

	public String getSigla() {
		return sigla;
	}

	public void setSigla(String sigla) {
		this.sigla = sigla;
	}

	public long getCodigo() {
		return codigo;
	}

	public void setCodigo(long codigo) {
		this.codigo = codigo;
	}
	
	
}
<!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"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:rich="http://richfaces.org/rich">
      

<ui:composition template="template.xhtml">

	<ui:define name="titulo">Cadastro de Uf</ui:define>
	<ui:define name="principal">
		 <h:form>
		 		UF: <h:inputText value="#{ufBean.uf.sigla}" />
		 		<h:commandButton value="#{msg['uf.btCadastro.nome']}" action="#{ufBean.cadastrar()}" />
		 </h:form>
	 	<h:messages/>
	</ui:define>
	
</ui:composition>

</html>

2 Respostas

Hebert_Coelho
Seu erro está nos imports das anotações. O import correto é:

import javax.faces.bean.ManagedBean;

import javax.faces.bean.RequestScoped;

Esse post aqui pode te ajudar: http://uaihebert.com/?p=23

W

Valeu pela ajuda. Deu certo. Além dos import’s tinha um problema no método cadastrar da classe UfBean.
Depois de corrigir os import’s ficou mais fácil corrigir o outro erro. Obrigado.

Criado 14 de maio de 2012
Ultima resposta 14 de mai. de 2012
Respostas 2
Participantes 2