以下是一个使用SSH(Struts2、Spring、Hibernate)框架在JSP中实现分页查询的实例:
1. 数据库设计:

假设我们有一个名为`users`的表,包含以下字段:`id`(主键)、`username`、`email`。
2. 实体类:
创建一个名为`User`的实体类,对应数据库中的`users`表。
```java
public class User {
private Integer id;
private String username;
private String email;
// 省略getter和setter方法
}
```
3. DAO层:
创建一个名为`UserDAO`的接口,用于数据库操作。
```java
public interface UserDAO {
List
int getTotalCount();
}
```
实现`UserDAO`接口:
```java
public class UserDAOImpl implements UserDAO {
private SessionFactory sessionFactory;
public List
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(User.class);
criteria.setFirstResult((page - 1) * pageSize);
criteria.setMaxResults(pageSize);
return criteria.list();
}
public int getTotalCount() {
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(User.class);
return ((Number) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
}
}
```
4. Service层:
创建一个名为`UserService`的类,用于业务逻辑处理。
```java
public class UserService {
private UserDAO userDAO;
public List
return userDAO.findUsersByPage(page, pageSize);
}
public int getTotalCount() {
return userDAO.getTotalCount();
}
}
```
5. Struts2控制器:
创建一个名为`UserAction`的类,用于处理用户请求。
```java
public class UserAction extends ActionSupport {
private int page = 1;
private int pageSize = 10;
private UserService userService;
private List
private int totalCount;
public String list() {
users = userService.getUsersByPage(page, pageSize);
totalCount = userService.getTotalCount();
return "



