0

I found other similar/question on StackOverflow and I tried to solve my problem following their solution, but i'm not able to figure out what I'm doing wrong. I need to pass a list from a servlet to JSP page.

This is the Servlet:

package controller;

import dao.DAOFactory;
import dao.interfaces.RoleDAO;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Role;

/**
 *
 * @author realnot
 */
@WebServlet("/Dashboard")
public class Dashboard extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest req, HttpServletResponse res) 
            throws ServletException, IOException {

        // Prepare messages.
        Map<String, String> messages = new HashMap<String, String>();
        req.setAttribute("messages", messages);

        // Obtain DAOFactory.
        DAOFactory crm = DAOFactory.getInstance("crm.jdbc");
        if (crm == null) {
            messages.put("dao", "DAOFactory not obtainerd: " + crm);
        }

        // Obtain RoleDAO.
        RoleDAO roleDAO = crm.getRoleDAO();
        if (roleDAO == null) {
            messages.put("dao", "RoleDAO not obtained: " + roleDAO);
        }

        List<Role> roles = roleDAO.list();
        req.setAttribute("roleList", roles);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/pages/Dashboard.jsp");
        rd.forward(req, res);
    }
}

This is the JSP page:

<!DOCTYPE html>
<html>
    <head>
        <title>CRM - Customer Relationship Management</title> 
        <link rel="stylesheet" type="text/css" href="../css/reset.css" />
        <link rel="stylesheet" type="text/css" href="../css/style.css" />
        <link rel="stylesheet" type="text/css" href="../css/menu.css" />
        <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    </head>
    <body>
        <div id="container">
            <div id="header">Header</div>
            <div id="page" class="grid_24">
                <div id="nav" class="grid_6">
                    <%@include file="include/navigation.html" %>
                </div>
                <div id="next-meetings" class="grid_6 content">
                    <h3>Next Meetings</h3>
                    <c:forEach items="${roleList}" var="role">
                        <c:out value="${role.role_id}"></c:out>
                        <c:out value="${role.role_name}"></c:out>
                    </c:forEach>
                </div>
                <div id="business-proposals" class="grid_6 content">
                    <h3>Business Proposals</h3>
                </div>
                <div id="personal-notes" class="grid_6 content">
                    <h3>Personal Notes</h3>
                </div>
            </div>
            <div id="footer">Footer</div>
        </div>
    </body>
</html>

The Model:

package model;

import java.io.Serializable;

public class Role implements Serializable {

    // Constants ------------------------------------------------------
    private static final long serialVersionUID = 1L;

    // Properties -----------------------------------------------------
    private Integer role_id;
    private String role_name;
    private String role_desc;

    // Getters/setters ------------------------------------------------
    public Integer getRoleID() { return this.role_id; }
    public String getRoleName() { return this.role_name; }
    public String getRoleDesc() { return this.role_desc; }

    public void setRoleID(Integer value) { this.role_id = value; }
    public void setRoleName(String value) { this.role_name = value; }
    public void setRoleDesc(String value) { this.role_desc = value; }
}

But i keep getting this error:

HTTP Status 500 - An exception occurred processing JSP page /pages/Dashboard.jsp at line 20

type Exception report

message An exception occurred processing JSP page /pages/Dashboard.jsp at line 20

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /pages/Dashboard.jsp at line 20

17: 18:

Next Meetings

19:
20:
21:
22:
23:

Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(Unknown Source) org.apache.jasper.servlet.JspServletWrapper.service(Unknown Source) org.apache.jasper.servlet.JspServlet.serviceJspFile(Unknown Source) org.apache.jasper.servlet.JspServlet.service(Unknown Source) javax.servlet.http.HttpServlet.service(Unknown Source) controller.Dashboard.doGet(Dashboard.java:53) javax.servlet.http.HttpServlet.service(Unknown Source) javax.servlet.http.HttpServlet.service(Unknown Source)

root cause

javax.el.PropertyNotFoundException: Property 'role_id' not found on type model.Role javax.el.BeanELResolver$BeanProperties.get(Unknown Source) javax.el.BeanELResolver$BeanProperties.access$300(Unknown Source) javax.el.BeanELResolver.property(Unknown Source) javax.el.BeanELResolver.getValue(Unknown Source) org.apache.jasper.el.JasperELResolver.getValue(Unknown Source) org.apache.el.parser.AstValue.getValue(Unknown Source) org.apache.el.ValueExpressionImpl.getValue(Unknown Source) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(Unknown Source) org.apache.jsp.pages.Dashboard_jsp._jspx_meth_c_005fout_005f0(Dashboard_jsp.java:197) org.apache.jsp.pages.Dashboard_jsp._jspx_meth_c_005fforEach_005f0(Dashboard_jsp.java:161) org.apache.jsp.pages.Dashboard_jsp._jspService(Dashboard_jsp.java:108) org.apache.jasper.runtime.HttpJspBase.service(Unknown Source) javax.servlet.http.HttpServlet.service(Unknown Source) org.apache.jasper.servlet.JspServletWrapper.service(Unknown Source) org.apache.jasper.servlet.JspServlet.serviceJspFile(Unknown Source) org.apache.jasper.servlet.JspServlet.service(Unknown Source) javax.servlet.http.HttpServlet.service(Unknown Source) controller.Dashboard.doGet(Dashboard.java:53) javax.servlet.http.HttpServlet.service(Unknown Source) javax.servlet.http.HttpServlet.service(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.56-gentoo logs. Apache Tomcat/7.0.56-gentoo

What is wrong?

Roman C
  • 49,761
  • 33
  • 66
  • 176
realnot
  • 721
  • 1
  • 11
  • 31

1 Answers1

1

You have use the property role_id

<c:out value="${role.role_id}"></c:out>

but you don't have such property. To be a property role_id you need to generate getter and setter for name role_id.

Roman C
  • 49,761
  • 33
  • 66
  • 176