Sto tentando di implementare l'impaginazione nella mia pagina JSP. Sto usando Spring MVC e Hibernate. La parte del codice Java è ok ma ho difficoltà ad implementarla nella mia pagina JSP. Sto usando twitter bootstrap.Implementare l'impaginazione nella pagina JSP in un'applicazione Spring MVC e Hibernate
Ecco quello che ho fatto fino ad ora:
<div class="container">
<table class="table table-hover">
<th>First Name</th>
<th>Last Name</th>
<th>Age</th>
<c:forEach items="${employees}" var="emp">
<tr>
<td>${emp.firstName}</td>
<td>${emp.lastName}</td>
<td>${emp.Age}</td>
</tr>
</c:forEach>
</table>
<div class="pagination">
<ul>
<li class="disabled"><a href="#">First</a></li>
<li class="disabled"><a href="#">Prev</a></li>
<li class="active"><a href="#">1</a></li>
<li class="active"><a href="#">2</a></li>
<li class="active"><a href="#">3</a></li>
<li class="active"><a href="#">4</a></li>
<li class="active"><a href="#">5</a></li>
<li class="active"><a href="#">Next</a></li>
<li class="active"><a href="#">Last</a></li>
</ul>
</div>
</div>
Questo è il codice correlato in mio controller:
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String getEmployees(ModelMap model) {
**//I believe I should get the page number from the JSP here but how?**
model.addAttribute("employees", this.employeeService.getEmployees(page));
return "listing";
}
Questo è il relativo codice della mia classe di servizio:
public List<Employee> getEmployees(int page) {
return employeeDao.getEmployeeList(page);
}
Questo è il codice correlato nella mia classe DAO:
private static final int limitResultsPerPage = 3;
public List<Employee> getEmployeeList(int page) {
Query q = sessionFactory.getCurrentSession().createQuery(
"from Employee");
q.setFirstResult(page * limitResultsPerPage);
q.setMaxResults(limitResultsPerPage);
return (List<Employee>) q.list();
}
La pagina in cui io sono la visualizzazione quel tavolo è list.jsp
Ecco la mia ipotesi su che cosa devo fare, ma non so come (per favore correggetemi se sto prendendo la strada sbagliata):
Modifica il mio link che punta a list.jsp nel mio menu, a list.jsp? Page = 0, quindi ogni volta che l'utente clicca sul link, arriverà nella prima pagina.
Quando l'utente fa clic su uno dei pulsanti, devo passare il numero di pagina al mio controller in modo da poter restituire i "dipendenti" giusti con la mia query.
Come si può vedere, i pulsanti Primo e Precedente sono disattivati come sono attualmente sulla prima pagina. Quindi la mia domanda è: come dovrei gestire l'attivazione/disattivazione di quei pulsanti, così come quelli Successivo e Ultimo?
Inoltre, come "aggiornare" i numeri nell'elenco? Ad esempio, se l'utente è alla pagina 20, non visualizzerò i pulsanti da 1 a 19?
Grazie, ho seguito il tuo consiglio, nessun problema :) Do you sapere qual è la migliore pratica per gestire i pulsanti Primo, Precedente, Successivo e Ultimo? – dukable
Grazie per l'aggiunta di ulteriori dettagli Vincent :) Ultima domanda, il nome del mio collegamento, che voglio essere il numero della pagina corrente utilizzando $ {pagina} non è interpretato, probabilmente manchi qualcosa: