使用Spring和PagingAndSorting存储库进行分页

时间:2019-03-13 00:11:08

标签: java spring repository

我在使用一项功能时遇到问题。我开发了类似div的消息传递应用程序的Web版本,其中包括历史记录(已发送消息)。这些消息来自数据库表Messages,我用JSTL显示了它们:

<c:choose>
    <c:when test="${modeMessages == 'MODE_MESSAGES' }">
       <c:forEach items="${messages}" var="message">
          <div class="message_list" style="cursor:auto;">
             <div class="chat_people">
                <div class="chat_ib" style="padding: 0;">
                   <p style="color: black;">Za: ${message.contact.firstName } ${message.contact.lastName }<br>Poruka: ${message.message }<br>Poslato: ${message.time }</p>
                </div>
             </div>
          </div>
        </c:forEach>
     </c:when>
  </c:choose>

This is how it looks.

我唯一缺少的是该div的分页。由于该表可能有100多个行,因此我希望每页显示20条。我只想提一下,例如当您按第2页时,我需要刷新DIV。我知道可以使用PagingAndSortingRepository来完成,我在网上尝试了几种解决方案,但是没有一个起作用。由于我是Spring的新人,因此在了解该存储库的工作方式时遇到了麻烦。

在这里,我将提供有关服务,控制器和存储库的其他代码。

MessagesRepository.java

public interface MessagesRepository extends JpaRepository<Messages, Integer> {

public List<Messages> findAll(); 

}

MessagesService.java

public class MessagesService {

private final MessagesRepository messagesRepository;

public MessagesService(MessagesRepository messagesRepository) {
    super();
    this.messagesRepository = messagesRepository;
}

public Iterable<Messages> findAll() {
    return messagesRepository.findAll();
}

}

MessageController.java(只是重要的一部分)

@GetMapping("/")
public String allContacts(HttpServletRequest request) {
    request.setAttribute("contacts", contactsService.findAll());
    request.setAttribute("modeContacts", "MODE_CONTACTS");
    request.setAttribute("messages", messagesService.findAll());
    request.setAttribute("modeMessages", "MODE_MESSAGES");
    return "index";
}

在此先感谢大家的帮助。

0 个答案:

没有答案