2016-06-19 26 views
1

-ControllerPaginierung und Sortierung, Sie wissen nicht, wie geliefert "items" iterieren in <forEach>

@RequestMapping(value ="/employees/pages", method = RequestMethod.GET) 
public String showPages(Model model) { 
Pageable pg = new PageRequest(1,10,Direction.ASC, "empNo");  
Page<Employee> results = this.employeeService.findPagedEmployees(pg); 
model.addAttribute("listemp", results); 
return "/employees/list"; 
} 

list.jsp

<h2>Employee List</h2> 
<c:if test="${!empty listemp}"> 
    <table class="table table-sm"> 
    <thead class="thead-inverse"> 
    <tr> 
     <th width="70">EmpNo</th> 
     <th width="120">First Name</th> 
     <th width="120">Last Name</th> 
     <th width="60"> Gender</th> 
     <th width="120">Birth Date</th> 
     <th width="120">Hire Date</th> 
     <th width="60">Edit</th> 
     <th width="60">Delete</th> 
    </tr> 
    </thead> 
    <c:forEach items="${listemp}" var="employee"> 
     <tr> 
      <td>${employee.empNo}</td> 
      <td>${employee.firstName}</td> 
      <td>${employee.lastName}</td> 
      <td>${employee.gender}</td> 
      <td>${employee.birthDate}</td> 
      <td>${employee.hireDate}</td> 
      <td><a href="/welcome/employees/edit/${employee.empNo}" class="btn btn-warning"><span class="glyphicon glyphicon-edit"></span> Edit</a></td> 
<%--   <a href="/welcome/employees/edit/${employee.empNo}" class="btn btn-warning">Edit</a> </td> --%> 
      <td><a href="/welcome/employees/delete/${employee.empNo}" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span>Delete</a> </td> 
     </tr> 
    </c:forEach> 
    </table> 
</c:if> 

Ich versuche Paginierung zu implementieren und die Sortierung nach empNo. Während ich debugge kann ich sehen, die Mitarbeiterdetails sind "Ergebnisse", aber nicht sicher, wie diese Felder durch Seiten zu iterieren. bitte helfen Sie mir mit Aussicht.

Meine Idee ist es, jede Seite mit 10 Ergebnissen für 191 Datensätze zu haben. und vorherige und nächste Optionen. bitte helfen !!!

Antwort

3

Sie verwenden die statische Sortierung, da Sie die Größe und die Seite, die Sie abrufen möchten, bereits übergeben haben.

für jeden Artikel, haben Sie nicht den Inhalt herausziehen.

Versuchen Sie so etwas wie dieses ...

<c:forEach items="${listemp.content}" var="employee"> 

    <tr> 
      <td>${employee.empNo}</td> 
      <td>${employee.firstName}</td>.......... 

    </tr> 

    <c:if test="${!listemp.last}"> 
     <li class="next"> 
     <a href="?page=${listemp.number+1}">Next &rarr;</a> 
     </li> 
    </c:if> 

und in der Controller-Klasse ...

@RequestMapping(value ="/employees/pages", method = RequestMethod.GET) 
public String showPages(Model model,@PageableDefault(page = 0,size = 20,direction = Direction.ASC, sort = {"empNo"}) Pageable pg) { 
     Page<Employee> results = this.employeeService.findPagedEmployees(pg); 
     model.addAttribute("listemp", results); 
     return "/employees/page"; 
     }