值未从请求对象中检索

时间:2019-05-04 13:03:21

标签: jsp servlets

我正在尝试学习JSP和Servlet。尝试从servlet发送的jsp页面中检索请求对象数据时,我得到的浏览器页面为空白。

如果我直接在foreach循环中使用参考值(STUDENT_LIST),此问题将得到解决。但是,如果我使用如下代码所示的request.getParameterValues方法,则将不会检索该值。

StudentListServlet.java

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String [] studentList= {"vivek","mahesh","somesh","shivani"};
    request.setAttribute("STUDENTS_LIST", studentList);

    RequestDispatcher dispatcher=request.getRequestDispatcher("/student-list.jsp");
    dispatcher.forward(request, response);

}

Students-list.jsp

    <body>
        <%
            String[] StudentsList = request.getParameterValues("STUDENT_LIST");
        %>
        <c:forEach var="tempStudent" items="${StudentsList}">
    ${tempStudent}
    </c:forEach>
    </body>

我原本希望输出是vivek mahesh ashish shivani,但我得到的是空白页。

1 个答案:

答案 0 :(得分:0)

参数和属性是完全不同的东西。您正在设置一个属性,希望在参数值中找到它。那不会发生。

此外,停止在JSP中使用脚本。

不要期望诸如${StudentsList}之类的JSP EL变量引用scriptlet变量。它引用名为StudentsList属性(不存在)。不是脚本变量。

您的属性名为STUDENTS_LIST,因此应为${STUDENTS_LIST}。而且脚本完全没有必要。