передача значения из сервлета на страницу JSP - PullRequest
0 голосов
/ 12 марта 2019

EditDeleteServlet - это мой сервлет, в котором перечислены все студенты. Вот код:

Student sbean = new Student();
            EditDeleteDAO sDAO = new EditDeleteDAO();

            String command = request.getParameter("command");
            PrintWriter out = response.getWriter();
            out.print(command);

            try{
                if(command.equals("Submit")) 
                {
                    String id=request.getParameter("id");
                    String studName=request.getParameter("studName");
                    String icNum=request.getParameter("icNum");
                    String matrixID=request.getParameter("matrixID");
                    String contactNum=request.getParameter("contactNum");
                    String email=request.getParameter("email");
                    String course=request.getParameter("course");
                    sbean.setId(Integer.parseInt(id));
                    sbean.setStudName(studName);
                    sbean.setICNum(icNum);
                    sbean.setMatrixID(Integer.parseInt(matrixID));
                    sbean.setContactNum(Integer.parseInt(contactNum));
                    sbean.setEmail(email);
                    sbean.setCourse(course);
                    EditDeleteDAO.insertDetails(sbean);
                    List<Student> list = sDAO.getAllDetails();
                    if(list!=null)
                    {
                        request.setAttribute("list",list);
                        RequestDispatcher rd = request.getRequestDispatcher("/studListing.jsp");
                        rd.forward(request, response);
                    }
                }

studListing.jsp - это моя страница jsp, на которой я хочу показать свои данные здесь

list = request.getAttribute ("list"); %>

Ответы [ 3 ]

3 голосов
/ 12 марта 2019

Вы добавили в свой запрос key с именем list

request.setAttribute("list",list);

, поэтому вы должны получить его, используя это имя в вашем JSP

Также используйте EL не Java в вас JSP

<c:foreach items="${list}" var="student">
    ${student.studName}
<c:forEach>
0 голосов
/ 12 марта 2019

По сути, JSP и сервлеты совместно используют одно и то же пространство, фактически JSP компилируется в сервлет на бэкэнде, и они совместно используют один и тот же HttpServletRequest и HttpServletResponse, так что вы можете установить значение в сервлете в запросе и извлечь в JSP, используя один и тот же объект запроса .

например. внутри сервлета, request.setAttribute ( "список", список);

внутри JSP, request.getAttribute ( "список");

В качестве альтернативы вы также можете использовать объект сеанса, чтобы делиться этим со своим HttpSession.

0 голосов
/ 12 марта 2019

Вы должны использовать request.setAttribute () , чтобы добавить пары ключ-значение, которые может использовать ваша страница jsp.В вашем коде:

request.setAttribute("list", list);

Затем вы можете получить атрибут в вашем jsp следующим образом:

<% List<Student> list = request.getAttribute("list"); %> // Note that the name of the attribute is "list"

Но если вы собираетесь перебирать список, рекомендуетсяиспользуйте EL:

<c:forEach items="${list}" var="listItem">
    <c:out value="${listItem.eid}"/>
</c:forEach>
...