У меня есть контроллер, который получает все новости из базы данных и в то же время считает количество комментариев к каждой из новостей, но у меня есть проблема, потому что даже когда данные правильно вытаскиваются из базы данных, jsp не смешивает каждый объект новостей с соответствующим количеством комментариев...
Вот мой контроллер:
@RequestMapping(value = "/viewstatus", method = RequestMethod.GET)
public ModelAndView viewStatus(ModelAndView modelAndView, @RequestParam(name = "p", defaultValue = "1") int pageNumber) {
Page<StatusUpdate> page = statusUpdateService.getPage(pageNumber);
for(StatusUpdate statusUpdate: page){
SiteUser siteUser= statusUpdate.getSiteUser();
modelAndView.getModel().put("siteuser", siteUser);
int countComments = commentService.countStatusComments(statusUpdate);
modelAndView.getModel().put("commentscounter", countComments);
}
modelAndView.getModel().put("page", page);
modelAndView.setViewName("app.viewStatus");
return modelAndView;
}
Вот результат консоли:
Вот JSP:
И вот результат (0 за все комментарии, когда это не так):
<table class="table table-hover">
<c:forEach var="statusUpdate" items="${page.content}">
<tr>
<td>
<ul class="list-inline posted-info">
<li>By
<a href="${contextRoot}/profile/${statusUpdate.siteUser.id}">
${statusUpdate.siteUser.firstname}
${statusUpdate.siteUser.surname}
</a>
</li>
<li>Posted</li>
<li>
<fmt:formatDate pattern="EEEE d MMMM y 'at' H:mm:ss" value="${statusUpdate.added}" />
</li>
</ul>
</td>
</tr>
<tr>
<td>
<h2>
<a href="${contextRoot}/viewonestatus/${statusUpdate.id}">${statusUpdate.title}></a>
</h2>
<p>${statusUpdate.text}</p>
</td>
</tr>
<tr>
<td>
<ul class="post-shares">
<li>
<a href="#"> <i class="rounded-x icon-speech"></i>
<span>${commentscounter}</span>
</a>
</li>
<li><a href="#"><i class="rounded-x icon-share"></i></a></li>
<li><a href="#"><i class="rounded-x icon-heart"></i></a></li>
</ul>
</td>
</tr>
</c:forEach>
</table>
Проблема в том, как добавить
@RequestMapping(value = "/viewstatus", method = RequestMethod.GET)
public ModelAndView viewStatus(ModelAndView modelAndView, @RequestParam(name = "p", defaultValue = "1") int pageNumber) {
Page<StatusUpdate> page = statusUpdateService.getPage(pageNumber);
for(StatusUpdate statusUpdate: page){
SiteUser siteUser= statusUpdate.getSiteUser();
modelAndView.getModel().put("siteuser", siteUser);
int countComments = commentService.countStatusComments(statusUpdate);
modelAndView.getModel().put("commentscounter", countComments);
}
modelAndView.getModel().put("page", page);
modelAndView.setViewName("app.viewStatus");
return modelAndView;
}
в модель.