我正在尝试学习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,但我得到的是空白页。
答案 0 :(得分:0)
参数和属性是完全不同的东西。您正在设置一个属性,希望在参数值中找到它。那不会发生。
此外,停止在JSP中使用脚本。
不要期望诸如${StudentsList}
之类的JSP EL变量引用scriptlet变量。它引用名为StudentsList
的属性(不存在)。不是脚本变量。
您的属性名为STUDENTS_LIST
,因此应为${STUDENTS_LIST}
。而且脚本完全没有必要。