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>