2
respostas

'adminLivrosBean' resolved to null

Segui toda a aula e o erro continua. Poderia me ajudar?

Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'adminLivrosBean' resolved to null
    at com.sun.el.parser.AstValue.getTarget(AstValue.java:173)
    at com.sun.el.parser.AstValue.getType(AstValue.java:85)
    at com.sun.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:201)
    at org.jboss.weld.el.WeldValueExpression.getType(WeldValueExpression.java:93)
    at org.jboss.weld.el.WeldValueExpression.getType(WeldValueExpression.java:93)
    at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
    ... 50 more
<!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:ui="http://java.sun.com/jsf/facelets" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:f="http://java.sun.com/jsf/core">

    <h:form>
        <div>
            <h:outputLabel value="Título" />
            <h:inputText value="#{adminLivrosBean.livro.titulo}"/>
        </div>
        <div>
            <h:outputLabel value="Descrição" />
            <h:inputTextarea rows="4" cols="20" value="#{adminLivrosBean.livro.descricao}"/>
        </div>
        <div>
            <h:outputLabel value="Número de Páginas" />
            <h:inputText value="#{adminLivrosBean.livro.numeroPaginas}"/>
        </div>
        <div>
            <h:outputLabel value="Preço" />
            <h:inputText value="#{adminLivrosBean.livro.preco}"/>
        </div>
        <h:commandButton  value="Cadastrar" action="#{adminLivrosBean.salvar}"/>
    </h:form>


</html>
package br.com.casadocodigo.loja.beans;

import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

import br.com.casadocodigo.loja.models.Livro;
//CDI
@Named
@RequestScoped
public class AdminLivrosBean {
    private Livro livro = new Livro();

    public void salvar() {
        System.out.println("Livro Cadastrado: " + livro);
    }

    public Livro getLivro() {
        return livro;
    }

    public void setLivro(Livro livro) {
        this.livro = livro;
    }
}
package br.com.casadocodigo.loja.models;

import java.math.BigDecimal;

public class Livro {
    private String titulo;
    private String descricao;
    private BigDecimal preco;
    private Integer numeroPaginas;

    public String getTitulo() {
        return titulo;
    }
    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }
    public String getDescricao() {
        return descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    public BigDecimal getPreco() {
        return preco;
    }
    public void setPreco(BigDecimal preco) {
        this.preco = preco;
    }
    public Integer getNumeroPaginas() {
        return numeroPaginas;
    }
    public void setNumeroPaginas(Integer numeroPaginas) {
        this.numeroPaginas = numeroPaginas;
    }

    @Override
    public String toString() {
        return "Livro [titulo=" + titulo + ", descricao=" + descricao + ", preco=" + preco + ", numeroPaginas="
                + numeroPaginas + "]";
    }

}
2 respostas

Desculpa, não consigo ajudar diretamente, mas pelo que pesquisei pode ser algum problema de configuração, veja se esse aqui te ajuda: https://cursos.alura.com.br/forum/topico-identifier-livrobean-resolved-to-null-27778

opa Thiago o problema é que está faltando o body acredito que na versão antiga que ele usava não precisava.

quando coloquei funcionou normalmente

Obrigado pela ajuda.

ficou assim caso alguém precise

<!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:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">

<h:body>
    <h:form>
        <div>
            <h:outputLabel value="Título" />
            <h:inputText value="#{adminLivrosBean.livro.titulo}" />
        </div>
        <div>
            <h:outputLabel value="Descrição" />
            <h:inputTextarea rows="4" cols="20"
                value="#{adminLivrosBean.livro.descricao}" />
        </div>
        <div>
            <h:outputLabel value="Número de Páginas" />
            <h:inputText value="#{adminLivrosBean.livro.numeroPaginas}" />
        </div>
        <div>
            <h:outputLabel value="Preço" />
            <h:inputText value="#{adminLivrosBean.livro.preco}" />
        </div>
        <h:commandButton value="Cadastrar" action="#{adminLivrosBean.salvar}" />
    </h:form>
</h:body>

</html>

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software