Opa boa tarde, estou em um erro que sempre que acontece comigo eu coloco na minha anotação
@Named(value="nomeDoBean")
Aqui resolver, mais hojê não quer sair, falando que meu identificador está nullo.
@Named(value = "produtoBean")
@SessionScoped
@SuppressWarnings("serial")
public class ProdutoBean implements Serializable{
@Inject
private Produto produto;
@Inject
private Marca marca;
@Inject
private ProdutoDao produtoDao;
@Inject
private MarcaDao marcaDao;
@Inject
private FornecedorDao fornecedorDao;
@Transacional
public void salvar() {
if(produto.getCodigo() == null) {
produto.setMarca(marca);
marcaDao.salvar(marca);
produtoDao.salvar(produto);
Mensagem.mensagemInfo("Produto adicionado com sucesso");
} else {
}
this.marca = new Marca();
this.produto = new Produto();
}
@Transacional
public List<Fornecedor> getListaFornecedores() {
return fornecedorDao.lista();
}
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public Marca getMarca() {
return marca;
}
public void setMarca(Marca marca) {
this.marca = marca;
}
}
<?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://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition template="/template/template.xhtml">
<ui:define name="conteudo">
<h:form id="formularioProduto">
<p:growl id="mensagem" life="6000" />
<p:panel header="Cadastro de Produto">
<h:panelGrid columns="2">
<p:outputLabel value="Nome: " for="nome" />
<p:inputText id="nome" value="#{produtoBean.produto.nome}"
placeholder="Nome do produto" size="29" />
<p:outputLabel value="Preço:" for="preco" />
<p:inputText id="preco" value="#{produtoBean.produto.preco}"
size="10" />
<p:outputLabel value="Quantidade:" for="quantidade" />
<p:inputText id="quantidade"
value="#{produtoBean.produto.quantidade}" size="5" />
<p:outputLabel value="Marca: " for="marca" />
<p:inputText id="marca" value="#{produtoBean.marca.nome}" />
<p:outputLabel value="Fornecedor: " for="fornecedor" />
<p:selectOneMenu id="fornecedor"
value="#{produtoBean.produto.fornecedor}">
<f:selectItem itemValue="" itemLabel="Selecione..." />
<f:selectItems value="#{produtoBean.listaFornecedores}"
var="fornecedor" itemValue="#{fornecedor}"
itemLabel="#{fornecedor.nome}" />
</p:selectOneMenu>
</h:panelGrid>
</p:panel>
<p:commandButton value="Salvar"
actionListener="#{produtoBean.salvar}" update="formularioProduto" />
</h:form>
</ui:define>
</ui:composition>
</html>
Erro;
Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'produtoBean' resolved to null
at org.apache.el.parser.AstValue.getTarget(AstValue.java:74)
at org.apache.el.parser.AstValue.getType(AstValue.java:58)
at org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:168)
at org.jboss.weld.el.WeldValueExpression.getType(WeldValueExpression.java:93)
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
... 42 more
Estou sem entender.