Pagination is used to display a large number of records in different parts. In such case, we display 10, 20 or 50 records in one page. For remaining records, we provide links.
We can simply create pagination example in Spring MVC. In this pagination example, we are using MySQL database to fetch records.
Create a table or import SQL file
Here, we have created "emp" table in "test" database. The emp table has three fields: id, name, and salary. Either create a table and insert records manually or import our SQL file.
Spring MVC Pagination Example
1. Add dependencies to pom.xml file.
pom.xml
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>5.1.1.RELEASE</version>
- </dependency>
-
-
- <dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-jasper</artifactId>
- <version>9.0.12</version>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>3.0-alpha-1</version>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
-
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>8.0.11</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>5.1.1.RELEASE</version>
- </dependency>
2. Create the bean class
Here, the bean class contains the variables (along setter and getter methods) corresponding to the fields exist in the database.
Emp.java
- package com.javatpoint.beans;
-
- public class Emp {
- private int id;
- private String name;
- private float salary;
-
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public float getSalary() {
- return salary;
- }
- public void setSalary(float salary) {
- this.salary = salary;
- }
-
- }
3. Create the controller class
In Controller class, the @PathVariable annotation bounds the method parameter with a temporary URL. For example:
- @RequestMapping(value="/viewemp/{pageid}")
Here, {} bracket contains the temporary value.
EmpController.java
- package com.javatpoint.controllers;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import com.javatpoint.beans.Emp;
- import com.javatpoint.dao.EmpDao;
- @Controller
- public class EmpController {
- @Autowired
- EmpDao dao;
-
- @RequestMapping(value="/viewemp/{pageid}")
- public String edit(@PathVariable int pageid,Model m){
- int total=5;
- if(pageid==1){}
- else{
- pageid=(pageid-1)*total+1;
- }
- System.out.println(pageid);
- List<Emp> list=dao.getEmployeesByPage(pageid,total);
- m.addAttribute("msg", list);
- return "viewemp";
- }
- }
4. Create the DAO class
Let's create a DAO class to access the required data from the database.
EmpDao.java
- package com.javatpoint.dao;
-
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.List;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.RowMapper;
- import com.javatpoint.beans.Emp;
-
- public class EmpDao {
- JdbcTemplate template;
-
- public void setTemplate(JdbcTemplate template) {
- this.template = template;
- }
-
- public List<Emp> getEmployeesByPage(int pageid,int total){
- String sql="select * from emp limit "+(pageid-1)+","+total;
- return template.query(sql,new RowMapper<Emp>(){
- public Emp mapRow(ResultSet rs, int row) throws SQLException {
- Emp e=new Emp();
- e.setId(rs.getInt(1));
- e.setName(rs.getString(2));
- e.setSalary(rs.getFloat(3));
- return e;
- }
- });
- }
- }
5. Provide the entry of controller in the web.xml file
web.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
- <display-name>SpringMVC</display-name>
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- </web-app>
6. Define the bean in the xml file
spring-servlet.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd">
- <context:component-scan base-package="com.javatpoint.controllers"></context:component-scan>
-
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/jsp/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
-
- <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
- <property name="url" value="jdbc:mysql://localhost:3306/test"></property>
- <property name="username" value=""></property>
- <property name="password" value=""></property>
- </bean>
-
- <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
- <property name="dataSource" ref="ds"></property>
- </bean>
-
- <bean id="dao" class="com.javatpoint.dao.EmpDao">
- <property name="template" ref="jt"></property>
- </bean>
- </beans>
7. Create the requested page
index.jsp
- <!DOCTYPE html>
- <html>
- <body>
- <a href="viewemp/1">View Employees</a>
- </body>
- </html>
8. Create view component
viewemp.jsp
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <body>
- <h1>Employees List</h1>
- <table border="2" width="70%" cellpadding="2">
- <tr><th>Id</th><th>Name</th><th>Salary</th></tr>
- <c:forEach var="emp" items="${msg}">
- <tr>
- <td>${emp.id}</td>
- <td>${emp.name}</td>
- <td>${emp.salary}</td>
- </tr>
- </c:forEach>
- </table>
- <br/>
- <a href="/SpringMVCPaginationExample/viewemp/1">1</a>
- <a href="/SpringMVCPaginationExample/viewemp/2">2</a>
- <a href="/SpringMVCPaginationExample/viewemp/3">3</a>
- </body>
- </html>
Output:
No comments:
Post a Comment