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

1. 数据库设计

ssh jsp怎么实现分页查询实例,SSH框架中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 findUsersByPage(int page, int pageSize);

int getTotalCount();

}

```

实现`UserDAO`接口:

```java

public class UserDAOImpl implements UserDAO {

private SessionFactory sessionFactory;

public List findUsersByPage(int page, int pageSize) {

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 getUsersByPage(int page, int pageSize) {

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 users;

private int totalCount;

public String list() {

users = userService.getUsersByPage(page, pageSize);

totalCount = userService.getTotalCount();

return "