0

Please help me about MVC java servlet. I found problem when show database query result on multiple rows and multiple columns (load all data, let say I get 10 rows after query), I want load all list student in JSP table.

How to setAttribute in the servlet and getAttribute in the JSP?

I'm set query result into a array list, this my code:

Bean Class

package com.mvc.bean;

public class StudentBean {
    private String name;
    private String id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
} 

DAO Class

package com.mvc.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import com.mvc.bean.StudentBean;
import com.mvc.util.DBConnection;

public class StudentDao {
    public ArrayList<StudentBean> getStudent() {
        ArrayList<StudentBean> list_student = new ArrayList<StudentBean>();
        Connection con = null;
        Statement statement = null;
        ResultSet resultSet = null;

        try {
            con = DBConnection.createConnection();
            statement = con.createStatement();
            resultSet = statement.executeQuery("SELECT * FROM tbl_student");
            while(resultSet.next()){
                StudentBean studentBean = new StudentBean();
                studentBean.setId(resultSet.getString("id"));
                studentBean.setName(resultSet.getString("name"));
                list_student.add(studentBean);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return list_student;
    }
}

Servlet Class

package com.mvc.controller;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mvc.bean.StudentBean;
import com.mvc.dao.StudentDao;

public class StudentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public StudentServlet() {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        StudentDao studentDao = new StudentDao();
        ArrayList<StudentBean> studentList = studentDao.getStudent();

        //I have get value studentBean as array list
        //Here, how to request.setAttribute ? i want passing to jsp table
        request.getRequestDispatcher("/Student.jsp").forward(request, response);
    }
}

JSP

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Student</title>
    </head>
    <body>
        <table>
        <tr>
            <th>Id</th>
            <th>Name</th>
        </tr>
        <tr>
            //Here i want get array value from servlet, how to ?
            <td><%=request.getAttribute("?") %></td>
            <td<%=request.getAttribute("?") %>></td>
        </tr>
        </table>
    </body>
</html>

Or otherwise ?

2 Answers 2

1

From java code you can use : request.setAttribute("mylist", studentBean);

in you JSP you need to use request.getAttribute("mylist") you will get your list.

For table you need to make loop for extracting information from your list.

Sign up to request clarification or add additional context in comments.

Comments

0

Solved, in the Servlet Class added request.setAttribute.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    StudentDao studentDao = new StudentDao();
    ArrayList<StudentBean> studentList = studentDao.getStudent();

    //added here
    request.setAttribute("studentList", studentList);

    request.getRequestDispatcher("/Student.jsp").forward(request, response);
}

And get the studentList in the JSP.

Add @taglib prefix="c" in the top line:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>

In the table use forEach to extract <tr> tag.

.getID() and .getName() refer to Bean Class method:

<table>
    <tr>
        <th>Id</th>
        <th>Name</th>
    </tr>
    <c:forEach var="studentBean" items="${studentList}">
        <tr>  
            <td>${studentBean.getID()}</td>
            <td>${studentBean.getName()}</td>
        </tr>
    </c:forEach>
</table>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.