Задача примерно такая: На сервере есть два списка. Список учеников и список дневников. Каждый дневник принадлежит ученику в единственном экземпляре. И у дневника есть поле по которому определяется эта принадлежность (id ученика).
Как мне отобразить информацию об ученике и о его дневнике на jsp странице. По отдельности можно отобразить через forEach, а как сделать это вместе не знаю
Не очень понятно, что именно нужно - отобразить данные об одном ученике и его дневнике, или это надо сделать для всех учеников? Предполагаю, что второй вариант. Тогда можно так: Сервлет
public void doGet(HttpServletRequest request, HttpServletResponse response) {
List<Student> students = studentDao.getAll();
List<Diary> diaries = diaryDao.getAll();
//Трансформируем лист дневников в мапу, где ключ - айдишник ученика,
//а значение - его дневник
Map<Integer, Diary> diaryMap = diaries.stream().collect(
Collectors.toMap(Diary::getStudentId, diary -> diary);
);
request.setAttribute("students", students);
request.setAttribute("diaryMap", diaryMap);
getServletContext().getRequestDispatcher("/view.jsp").forward(request, response);
}
теперь на view.jsp:
<c:forEach items="${students}" var="student">
//выдёргиваем дневник из мапы по айдишнику ученика
<c:set var="diary" value = "${diaryMap[student.id]}"/>
//делайте теперь со student-ом и diary что хотите
<p>Ученик: ${student.firstName} ${student.lastName}</p>
<p>Средний балл: ${diary.averageMark}</p>
</c:forEach>
Оговорюсь, что код не тестировал, не уверен, что в jstl и EL не накосячил, давно не использовал...
Виртуальный выделенный сервер (VDS) становится отличным выбором
как ширину Label'а изменять в зависимости от ширины панели? Менеджер не установлен никакой на панели
Я использую библиотеку javaxmail для отправки сообщений из под моего аккаунта с телефона Android на электронную почту:
Можно ли изменить траекторию анимацию в TimeLine не создавая новый TimeLine?