var obj = JSON.parse(number);
alert(obj.number); // will alert number 15
这里我创建了保存数据的会话。但只有最后一个数据传递给jsp做什么
servlet code
for (int i=0;i<StudentValues.studentmap.size();i++){
System.out.println("size"+i);
HttpSession session= request.getSession();
session.setAttribute("id", std.getStudentId());
session.setAttribute("fname", std.getFirstName());
session.setAttribute("mname", std.getMiddleName());
session.setAttribute("lname", std.getLastName());
session.setAttribute("faname", std.getFatherName());
session.setAttribute("maname", std.getMotherName());
session.setAttribute("address", std.getAddressDetails());
session.setAttribute("total", std.getTotalMarks());
session.setAttribute("grade", std.getGrade());
}
我使用动态表概念来保存这些数据,但只保留了我在表中获得的最后一个数据。如何获得我多次输入的所有数据
答案 0 :(得分:2)
您应该使用JSTL执行此操作。在JSP中使用scriplets是bad practice。
在servelt中,只需将整个学生地图设置为属性:
session.setAttribute("students", studentMap);
在jsp中:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<table>
<c:forEach var="student" items="${students}">
<tr>
<td>${student.mname}</td>
<td>${student.address}</td>
<td>${student.grade}</td>
</tr>
</c:forEach>
</table>
答案 1 :(得分:1)
您只会获得最后一个值,因为这些名称“id”,“fname”,“mname”,“lname “下,的” faname “下,的” maname “下,的” 地址 “下,的” 总“下, “成绩”必须是唯一的,因此当您进行迭代时,您将覆盖之前的值,因此您只能获取列表中的最后一个值
你实际做的是x=5
然后x=7
然后x=9
,所以你只得到最后一个值
你可以在会话中存储你的数组并使用JSTL标签在jsp中迭代
在servlet中:
session.setAttribute("myList", studentList);
在jsp中:
<c:forEach items="${myList}" var="element">
<tr>
<td>${element.id}</td>
<td>${element.fname}</td>
<td>${element.mname}</td>
<td>${element.lname}</td>
</tr>
</c:forEach>
答案 2 :(得分:0)
会话的属性基本上是一个地图。
你可能想做的只是有一个属性&#34;学生&#34;并在那里存储学生名单。然后迭代事物以创建你的表。
答案 3 :(得分:0)
将会话值存储到会话对象
session.setAttribute("ref-name", Session value)
;
而不是使用
获取jsp中的值Scriptlet Tag
(<%
//Java code
%>)
使用像这样的JSTL标记库,
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
您可以在jsp页面的任何位置访问会话值。
<!-- Session Values-->
<c:set var="userId" value="${sessionScope['fname']}"></c:set>
第二种方式,
session.setAttribute("students", studentList);
在JSP中使用Expression Langauage(EL - $)
<table>
<c:forEach var="student" items="${studentList}">
<tr>
<td>${student.fname}</td>
<td>${student.userid}</td>
</tr>
</c:forEach>
</table>
答案 4 :(得分:0)
您可以从servlet将std对象添加到会话中,并从jsp页面获取它。
添加到servlet中的会话
session.setAttribute("std",std);
从jsp
中获取会话Student std=(Student)session.getAttribute("std");
out.println(std.getFirstName());