Olá pessoal, estou com o seguinte problema:
Estou usando jsf e tenho uma classe CategoriaBean que possui um objeto Categoria
package controladores;
import entidades.Categoria;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import persistencia.CategoriaDao;
/**
*
* @author ROBSON
*/
@ManagedBean(name="categoriaBean")
@RequestScoped
public class CategoriaBean {
private Categoria categoria = new Categoria();
public String salvar() {
Categoria cat = new Categoria(getCategoria().getDescricao());
CategoriaDao catDao = new CategoriaDao();
catDao.salvar(cat);
return "listaCategoria";
}
public String teste() {
return "cadastroCategoria";
}
/**
* @return the categoria
*/
public Categoria getCategoria() {
return categoria;
}
/**
* @param categoria the categoria to set
*/
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
}
Estou tentando acessar o atributo descricao da classe Categoria assim <h:inputText value="#{categoriaBean.categoria.descricao}" required=“true” />
Mas ao tentar enviar o formulário, dá esse erro:
/listaCategoria.xhtml: Property ‘descricao’ not found on type controladores.CategoriaBean
Essa é a minha classe Categoria:
package entidades;
// Generated 29/03/2013 22:49:27 by Hibernate Tools 3.2.1.GA
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
* Categoria generated by hbm2java
*/
@Entity
@Table(name="categoria"
,catalog="locadora"
)
public class Categoria implements java.io.Serializable {
private Integer codCategoria;
private String descricao;
private Set<Filme> filmes = new HashSet<Filme>(0);
public Categoria() {
}
public Categoria(String descricao) {
this.descricao = descricao;
}
public Categoria(String descricao, Set<Filme> filmes) {
this.descricao = descricao;
this.filmes = filmes;
}
@Id @GeneratedValue(strategy=IDENTITY)
@Column(name="cod_categoria", unique=true, nullable=false)
public Integer getCodCategoria() {
return this.codCategoria;
}
public void setCodCategoria(Integer codCategoria) {
this.codCategoria = codCategoria;
}
@Column(name="descricao", nullable=false, length=50)
public String getDescricao() {
return this.descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="categoria")
public Set<Filme> getFilmes() {
return this.filmes;
}
public void setFilmes(Set<Filme> filmes) {
this.filmes = filmes;
}
}
Essa é a views:
<?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">
<h:head>
<title>Cadastro de Categorias</title>
</h:head>
<h:body>
<h1>Cadastro de Categorias</h1>
<h:messages />
<h:form>
Descrição: <h:inputText value="#{categoriaBean.categoria.descricao}" required="true" />
<h:commandButton action="#{categoriaBean.salvar}" value="Cadastrar"/>
</h:form>
</h:body>
</html>