@RequestMapping("/listPage.do") public String listPage(User user,Model model){ //处理分页 Page<User> page =new Page(1,3); //拼接where QueryWrapper<User> queryWrapper = new QueryWrapper(); if(!StringUtils.isEmpty(user.getName())){ queryWrapper.like("name",user.getName()); } if (!StringUtils.isEmpty(user.getSex())) { queryWrapper.eq("sex",user.getSex()); } if (!StringUtils.isEmpty(user.getAge())) { queryWrapper.eq("age",user.getAge()); } if (!StringUtils.isEmpty(user.getPhone())) { queryWrapper.eq("phone",user.getPhone()); } model.addAttribute("page",userService.page(page,queryWrapper)); return "index"; }
时间: 2024-04-05 20:30:14 浏览: 61
这是一个使用 Spring MVC 框架进行开发的控制器方法,用于处理用户列表的分页展示。该方法使用了 @RequestMapping 注解,用于指定处理请求的 URL 地址。具体来说,该方法处理 "/listPage.do" 请求。
在方法中,首先创建了一个 Page 对象,用于指定当前页码和每页显示的条数。然后使用 QueryWrapper 对象拼接 WHERE 条件,根据用户输入的查询条件进行查询过滤。最后,通过调用 userService 的 page 方法实现分页查询,并将查询结果添加到 Model 中,返回到 index 视图页面中展示。
需要注意的是,该代码中使用了 StringUtils 工具类进行字符串判空操作,需要在代码中引入 StringUtils 类的相关依赖。
相关问题
我使用 MySQL 创建了一个用户表TbUser,并且使用@GetMapping("/alterListUsers") public String alterListUsers(@RequestParam(defaultValue = "1") int pageNum, Model model) { Page<TbUser> page = tbUserService.findUsers(pageNum); List<TbUser> userList = page.getContent(); model.addAttribute("userList", userList); model.addAttribute("currentPage", pageNum); model.addAttribute("totalPages", page.getTotalPages()); return "management/user-alter"; }完成了用户分页查询功能,查询的结果返回了user-alter.html,请使用springboot+hibernate+thymeleaf帮助我完成编辑用户的功能,点击编辑按钮后,弹窗一个表单可以修改用户所有信息,点击确定后将信息保存到数据库,包含DAO、Controller、Entity、Service、impl的详细代码
好的,以下是实现编辑用户的代码:
**TbUser.java(Entity):**
```java
@Entity
@Table(name = "tb_user")
public class TbUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String username;
private String password;
@Column(nullable = false)
private String email;
// getters and setters
// equals and hashCode
}
```
**TbUserRepository.java(DAO):**
```java
@Repository
public interface TbUserRepository extends JpaRepository<TbUser, Long> {
}
```
**TbUserService.java(Service):**
```java
@Service
public class TbUserService {
@Autowired
private TbUserRepository tbUserRepository;
public Page<TbUser> findUsers(int pageNum) {
return tbUserRepository.findAll(PageRequest.of(pageNum - 1, 10));
}
public TbUser findById(Long id) {
return tbUserRepository.findById(id).orElse(null);
}
public TbUser save(TbUser tbUser) {
return tbUserRepository.save(tbUser);
}
}
```
**TbUserServiceImpl.java(Service实现类):**
```java
@Service
public class TbUserServiceImpl implements TbUserService {
@Autowired
private TbUserRepository tbUserRepository;
@Override
public Page<TbUser> findUsers(int pageNum) {
return tbUserRepository.findAll(PageRequest.of(pageNum - 1, 10));
}
@Override
public TbUser findById(Long id) {
return tbUserRepository.findById(id).orElse(null);
}
@Override
public TbUser save(TbUser tbUser) {
return tbUserRepository.save(tbUser);
}
}
```
**UserController.java(Controller):**
```java
@Controller
@RequestMapping("/management")
public class UserController {
@Autowired
private TbUserService tbUserService;
@GetMapping("/alterListUsers")
public String alterListUsers(@RequestParam(defaultValue = "1") int pageNum, Model model) {
Page<TbUser> page = tbUserService.findUsers(pageNum);
List<TbUser> userList = page.getContent();
model.addAttribute("userList", userList);
model.addAttribute("currentPage", pageNum);
model.addAttribute("totalPages", page.getTotalPages());
return "management/user-alter";
}
@GetMapping("/editUser/{id}")
public String editUser(@PathVariable Long id, Model model) {
TbUser tbUser = tbUserService.findById(id);
if (tbUser != null) {
model.addAttribute("tbUser", tbUser);
return "management/user-edit";
} else {
return "redirect:/management/alterListUsers";
}
}
@PostMapping("/saveUser")
public String saveUser(TbUser tbUser) {
tbUserService.save(tbUser);
return "redirect:/management/alterListUsers";
}
}
```
**user-alter.html(用户列表页面):**
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<table>
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>邮箱</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr th:each="tbUser : ${userList}">
<td th:text="${tbUser.id}"></td>
<td th:text="${tbUser.username}"></td>
<td th:text="${tbUser.email}"></td>
<td>
<a th:href="@{/management/editUser/__${tbUser.id}__}">编辑</a>
</td>
</tr>
</tbody>
</table>
<div>
<ul>
<li th:if="${currentPage != 1}">
<a th:href="@{/management/alterListUsers(pageNum=1)}">首页</a>
</li>
<li th:if="${currentPage > 1}">
<a th:href="@{/management/alterListUsers(pageNum=${currentPage - 1})}">上一页</a>
</li>
<li th:if="${currentPage < totalPages}">
<a th:href="@{/management/alterListUsers(pageNum=${currentPage + 1})}">下一页</a>
</li>
<li th:if="${currentPage != totalPages}">
<a th:href="@{/management/alterListUsers(pageNum=${totalPages})}">尾页</a>
</li>
</ul>
</div>
</body>
</html>
```
**user-edit.html(用户编辑页面):**
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>编辑用户信息</title>
</head>
<body>
<form th:action="@{/management/saveUser}" method="post">
<input type="hidden" th:field="*{id}"/>
<div>
<label>用户名:</label>
<input type="text" th:field="*{username}"/>
</div>
<div>
<label>密码:</label>
<input type="password" th:field="*{password}"/>
</div>
<div>
<label>邮箱:</label>
<input type="email" th:field="*{email}"/>
</div>
<div>
<button type="submit">保存</button>
</div>
</form>
</body>
</html>
```
以上就是实现编辑用户功能的详细代码。
** * 房子控制器 */ @Controller("backendHouseController") @RequestMapping("/admin/house") public class HouseController extends BaseController { @Autowired private HouseService houseService; /** * 进入房子管理页面 */ @RequestMapping("") public String houseList(@RequestParam(value = "page",defaultValue = "1")Long pageNumber, @RequestParam(value = "size",defaultValue = "6")Long pageSize, Model model){ Page page = PageUtil.initMpPage(pageNumber,pageSize); House condition = new House(); //如果登录用户是管理员,可以查询所有房子;如果登录用户不是管理员,只能查询自己的房子 if(!loginUserIsAdmin()){ condition.setUserId(getLoginUserId()); } Page<House> housePage = houseService.findAll(page,condition); model.addAttribute("pageInfo",housePage); model.addAttribute("pagePrefix","/admin/house?"); model.addAttribute("isAdmin",loginUserIsAdmin()); model.addAttribute("tab","house-list"); return "admin/house-list"; }
这段代码是一个Java Spring MVC的控制器方法,用于处理请求路径为"/admin/house"的GET请求。
该方法使用了@RequestParam注解,获取了两个请求参数:pageNumber和pageSize。其中,pageNumber默认值为1,pageSize默认值为6。
在方法体内,首先使用PageUtil类的initMpPage方法初始化了一个Mybatis Plus的分页对象Page,并将pageNumber和pageSize作为参数传入。然后创建了一个House对象condition,并根据当前登录用户的身份设置其userId属性。如果当前登录用户是管理员,则condition不做修改,可以查询所有房子;如果当前登录用户不是管理员,则将condition的userId属性设置为当前登录用户的ID,只能查询自己的房子。
接着,调用houseService的findAll方法,查询出符合条件的房子列表,并存储在一个Page<House>对象housePage中。
最后,将housePage对象和一些其他参数添加到Model中,返回了一个名为"admin/house-list"的视图。
阅读全文