У меня возникла проблема с отображением моего ключа и значения из моего HashMap
в котором значение указано в User Defined Class, это ошибка, которая показывает
Student.class
:
class Student
{
private String name;
private int age;
//getter and setter
}
Мой КОНТРОЛЛЕР:
@RequestMapping(value = "/showStudent", method = RequestMethod.GET)
public ModelAndView retrievesession(HttpSession session)
{
ModelAndView mav = new ModelAndView("ShowStudent");
Map<String,ArrayList<Student>> classList = new HashMap<String,ArrayList<Student>>();
ArrayList<Student> student = new ArrayList<Student>();
String nameUser = (String) session.getAttribute("name");
String trackUser = (String) session.getAttribute("track");
if(nameUser.equals("Kakashi") && trackUser.equals("Konoha"))
{
student.add(new Student("Naruto",12));
student.add(new Student("Sasuke",13));
classList.put("Ninja", student);
mav.addObject("classList", classList);
}
else if(nameUser.equals("Goku") && trackUser.equals("Earth"))
{
student.add(new Student("Gohan",25));
student.add(new Student("Goten",13));
classList.put("Fighter", student);
mav.addObject("classList", classList);
}
else if(nameUser.equals("Ryuk") && trackUser.equals("Killer"))
{
student.add(new Student("Kira",22));
student.add(new Student("L",21));
classList.put("Reaper", student);
mav.addObject("classList", classList);
}
return mav;
}
Мой JSP:
<h3>Name: ${name}</h3>
<h3>Track: ${track}</h3><br/><br/><br/>
<h3>Your student from ${classList.key}</h3>
<c:if test="${not empty classList}">
<table>
<c:forEach items="${classList}" var="classList">
<tr>
<td>${classList.value.name}</td>
<td>${classList.value.age}</td>
</tr>
</c:forEach>
</table>
</c:if>
Я не знаю, правильно ли я делаю это, он просто показывает значения, с которыми у меня возникла проблема, а также могу добавить оператор else, поэтому, если сеанс равен null
он вернется на страницу входа?
Перейдя по карте, вы получите еще одну коллекцию, в которой вы должны выполнить итерацию в другом цикле, прежде чем сможете получить свойства объекта.
<table>
<c:forEach items="${classList}" var="list">
<tr><td><h3>Your student from ${list.key}</h3></td></tr>
<tr><td>
<table>
<c:forEach items="${list.value}" var="student">
<tr>
<td>${student.name}</td>
<td>${student.age}</td>
</tr>
</c:forEach>
</table>
</td></tr>
</c:forEach>
</table>
Используйте код как: -
<h3>Name: ${name}</h3>
<h3>Track: ${track}</h3><br/><br/><br/>
<h3>Your student from ${classList.key}</h3>
<c:if test="${not empty classList}">
<table>
<c:forEach items="${classList}" var="class">
<tr>
<td>${class.name}</td>
<td>${class.age}</td>
</tr>
</c:forEach>
</table>