【问题标题】:PropertyNotFoundException exception in the JSP page [duplicate]JSP页面中的PropertyNotFoundException异常[重复]
【发布时间】:2015-09-19 02:44:08
【问题描述】:

我正在尝试通过 JSP 页面编辑我的实体

<jsp:include page="menuEditarDisciplina.jsp">
    <jsp:param name="idDisciplina" value='<%=request.getParameter("id")%>'/>
</jsp:include>

我正在使用的 servlet 代码

public class InsereDisciplina implements Logica {

    private ClienteRestDisciplina clienteRestDisciplina;
    private ClienteRestCurso clienteRestCurso;

    public void executa(HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        clienteRestDisciplina = new ClienteRestDisciplina();
        clienteRestCurso = new ClienteRestCurso();

        String idCursoS = req.getParameter("idCurso");
        Integer idCurso = (idCursoS != null) ? Integer.parseInt(idCursoS)
                : null;

        String idProfessorS = req.getParameter("idProfessor");
        Integer idProfessor = (idProfessorS != null) ? Integer
                .parseInt(idProfessorS) : null;

        String idDisciplinaS = req.getParameter("id");
        Integer idDisciplina = (idDisciplinaS != null) ? Integer
                .parseInt(idDisciplinaS) : null;

        Disciplina disciplina = idDisciplina == null ? new Disciplina()
                : clienteRestDisciplina.getDisciplina(idDisciplina);

        disciplina.setNome(req.getParameter("nome"));
        disciplina.setSala(Integer.parseInt(req.getParameter("sala")));

        String dataString = req.getParameter("horario").toString();

        disciplina.setHorario(Date.valueOf(dataString));
        disciplina.setCargaHoraria(Integer.parseInt(req
                .getParameter("cargaHoraria")));
        disciplina.setDescricao(req.getParameter("descricao"));

        if (disciplina.getIdDisciplina() != null) {
            clienteRestDisciplina.editarDisciplina(disciplina);
        } else {
            clienteRestCurso.inserirDisciplinaNoCurso(idCurso, idProfessor,
                    disciplina);
        }

        res.sendRedirect("disciplina/listarDisciplinas.jsp");

    }

}

我的 Java bean 类如下

@XmlRootElement
public class Disciplina implements Serializable {
    private static final long serialVersionUID = 1L;

    private Integer id;

    public Disciplina() {
    }

    public Disciplina(Integer id) {
        this.id = id;
    }

    public Disciplina(Integer id, String nome, String descricao, int cargaHoraria, Date horario, int sala) {
        this.id = id;
        this.nome = nome;
        this.descricao = descricao;
        this.cargaHoraria = cargaHoraria;
        this.horario = horario;
        this.sala = sala;
    }   

    public Integer getIdDisciplina() {
        return id;
    }

    public void setIdDisciplina(Integer idDisciplina) {
        this.id = idDisciplina;
    }

    // ...

}

但它给出了一个例外:

javax.el.PropertyNotFoundException: The class 'br.icmc.usp.modelo.Disciplina' does not have the property 'id'.
    at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:664)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:293)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:188)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:120)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:167)
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
    at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:1009)
    at org.apache.jsp.disciplina.editarDisciplina_jsp._jspService(editarDisciplina_jsp.java:99)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)

为什么我会收到 PropertyNotFoundException 异常?我哪里错了?

【问题讨论】:

    标签: jsp el propertynotfoundexception


    【解决方案1】:

    这似乎是与 EL 相关的错误。不是小脚本代码错误。 EL 适用于 getter setter。

    改变你的 getter setter

    public Integer getIdDisciplina() {
        return id;
    }
    
    public void setIdDisciplina(Integer idDisciplina) {
        this.id = idDisciplina;
    }
    

        public Integer getId() {
            return id;
        }
    
        public void setId(Integer idDisciplina) {
            this.id = idDisciplina;
        }
    

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 1970-01-01
      • 2012-05-13
      • 2012-08-27
      • 1970-01-01
      • 2013-02-19
      • 2011-01-28
      • 2015-03-04
      • 2015-03-02
      相关资源
      最近更新 更多