3 回答
TA贡献1995条经验 获得超2个赞
对的,这是可能的。但首先你必须创建一个PagingAndSortingRepository<T, I>存储库和控制器的接口,在你的情况下我没有看到一个,你必须添加页面、大小、元素、stc 的属性,这些属性由返回的PagingAndSortingRepository<T, I>所以你的 jsp 页面将了解页面等属性,您可以使用它${page}来显示页码。我指的是这个存储库。
员工存储库:
public interface EmployeeRepository extends PagingAndSortingRepository<Employee, Integer> {}
有PagingAndSortingRepository<T, I>一个findAll(page)根据页面数据传递对象的方法。
员工道:
@Service
public class EmpDao {
@Autowired
private EmpRepository repo;
public Page<Emp> getPage(Pageable pageable){
return repo.findAll(pageable);
}
如果您想要根据页面显示对象,那么您必须使用Page<T>接口,因为页面是对象列表的子列表。它允许获取有关它在包含的整个列表中的位置的信息。
@Controller
public class EmpController {
@Autowired
private EmpDao dao;
@RequestMapping("/viewemp")
public String viewemp(Model m, Pageable pageable){
Page<Emp> pages=dao.getPage(pageable);
m.addAttribute("number", pages.getNumber());
m.addAttribute("totalPages", pages.getTotalPages());
m.addAttribute("totalElements", pages.getTotalElements());
m.addAttribute("size", pages.getSize());
m.addAttribute("data",pages.getContent());
return "viewemp";
}
}
是Pageable
分页信息的抽象接口
getNumber()
- 返回当前切片的编号。始终为非负数。getTotalPages()
- 返回总页数。getTotalElements()
- 返回元素的总数。getSize()
- 返回切片的大小。getContent()
- 以列表形式返回页面内容。
Jsp页面假设你已经存储了数据:
只需将其写在您的表体中即可<tbody>
<tbody id="myTable">
<c:choose>
<c:when test="${data.size() > 0 }">
<c:forEach var="emp" items="${data}">
<tr align="center">
<td>${emp.id}</td>
<td>${emp.name}</td>
<td>${emp.designation}</td>
<td><a href="editemp/${emp.id}" class="btn btn-outline-info">Edit</a></td>
<td><a href="deleteemp/${emp.id}" class="btn btn-outline-danger">Delete</a></td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr align="center">
<td colspan="5">No Users available</td>
</tr>
</c:otherwise>
</c:choose>
<c:if test="${data.size() > 0 }">
<div class="panel-footer">
Showing ${number+1} of ${size+1} of ${totalElements}
<ul class="pagination">
<c:forEach begin="0" end="${totalPages-1}" var="page">
<li class="page-item">
<a href="viewemp?page=${page}&size=${size}" class="page-link">${page+1}</a>
</li>
</c:forEach>
</ul>
</div>
</c:if>
</tbody>
你就可以走了..
希望能帮助到你..
TA贡献1813条经验 获得超2个赞
通过这个例子可以确定一些方法。
public class StudentRepository {
@PersistenceContext
private EntityManager entityManager;
public List<StudentEntity> listAll() {
Query query = entityManager.createQuery("from StudentEntity");
return query.getResultList();
}
}
TA贡献1858条经验 获得超8个赞
试试这个:使用 PagingAndSortingRepository 扩展您的 EmployeeRepository。然后更改 findall() 方法类型 PageRequest findAll(PageRequest pagerequest)。
public interface EmployeeRepository extends PagingAndSortingRepository<Emp, Integer> {
PageRequest<Emp> findAll(PageRequest pagerequest)
}
添加回答
举报