Я хочу сделать одинаковое значение в таблице. Я хочу знать, как читать данные таблицы по вертикали в спящий режим Java, используя hashmap.
Вот код класса обслуживания:
public class LabScheduleService {
@Autowired
CoursesRepository repoCourses;
@Autowired
labScheduleRepository repcours;
@Autowired
DayRepository repoDay;
@Autowired
timeslotRepository repoTime;
public List<courses> getCourses() {
return repoCourses.findAll();
}
public HashMap<String, String> getclasses() {
List<labschedule> labschedule = new ArrayList<labschedule>();
List<courses> course = new ArrayList<courses>();
List<days> days = new ArrayList<days>();
List<timeslots> timeslot = new ArrayList<timeslots>();
HashMap<String, String> hash = new HashMap<String, String>();
String key = "";
labschedule = repcours.findAll();
course = repoCourses.findAll();
days = repoDay.findAll();
for (labschedule i : labschedule) {
key=i.getTid()+"::"+i.getDid();
//key = i.getDid() + "::" + i.getTid();
for (courses c : course) {
if (c.getCourseId() == Integer.parseInt(i.getCid())) {
hash.put(key, c.getCourseName());
}
}
}
return hash;
}
}
Вот код индекса класса
<body>
<table>
<tr>
<th>TIME/DAYS</th>
<c:forEach var="day" items="${day}">
<th><c:out value="${day.day}" /></th>
</c:forEach>
</tr>
<c:forEach var="time" items="${timeslot}">
<tr>
<td class="timeslot"><c:out value="${time.timeslot}" /></td>
<c:forEach var="day" items="${day}">
<c:set var="key" value="${time.timeID}::${day.id}" />
<td><c:out value="${HAtt[key]}" /></td>
</c:forEach>
</tr>
</c:forEach>
</table>
</body>
Вот код контроллера:
@GetMapping("/")
public String index(Model model ) {
model.addAttribute("day", srvDays.getDays());
model.addAttribute("timeslot", srvTime.getTimeSlots());
model.addAttribute("course", srvCourse.getCourses());
model.addAttribute("HAtt",srvCourse.getclasses());
return "index";
}
Я также прилагаю изображение моего текущего вывода или требуемого вывода
Токовый выход:
Требуемый вывод: