java Freemarker模板通用增删改查 控制器层编写详细实例 Mybatis-plus
时间: 2024-03-10 17:51:06 浏览: 101
好的,下面是一个基于MyBatis-Plus实现的控制器层编写的示例。
```java
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
// 列表页面
@RequestMapping("/list")
public String list(Model model) {
List<User> userList = userService.list();
model.addAttribute("userList", userList);
return "user/list";
}
// 新增页面
@RequestMapping("/add")
public String add(Model model) {
model.addAttribute("user", new User());
return "user/add";
}
// 新增操作
@PostMapping("/add")
public String add(User user, RedirectAttributes attributes) {
boolean success = userService.save(user);
if (success) {
attributes.addFlashAttribute("success", "新增用户成功");
} else {
attributes.addFlashAttribute("error", "新增用户失败");
}
return "redirect:/user/list";
}
// 编辑页面
@RequestMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, Model model) {
User user = userService.getById(id);
model.addAttribute("user", user);
return "user/edit";
}
// 编辑操作
@PostMapping("/edit")
public String edit(User user, RedirectAttributes attributes) {
boolean success = userService.updateById(user);
if (success) {
attributes.addFlashAttribute("success", "编辑用户成功");
} else {
attributes.addFlashAttribute("error", "编辑用户失败");
}
return "redirect:/user/list";
}
// 删除操作
@PostMapping("/delete/{id}")
public String delete(@PathVariable("id") Long id, RedirectAttributes attributes) {
boolean success = userService.removeById(id);
if (success) {
attributes.addFlashAttribute("success", "删除用户成功");
} else {
attributes.addFlashAttribute("error", "删除用户失败");
}
return "redirect:/user/list";
}
}
```
上面的代码中,我们使用了MyBatis-Plus提供的通用CRUD接口,简化了控制器层的编写。其中,@Autowired注解注入了一个UserService对象,用于处理业务逻辑。
我们通过@RequestMapping注解指定了各个请求的路径,如列表页面、新增页面、编辑页面等。其中,Model参数用于传递数据到模板中。
对于新增、编辑、删除操作,我们使用了@PostMapping注解,指定了请求方法为POST,并使用RedirectAttributes对象传递添加成功或失败的消息。
在每个操作的方法中,我们调用了UserService对象的相应方法,处理了业务逻辑,并根据执行结果返回相应的消息和页面。
总体来说,控制器层主要负责处理请求和响应,调用Service层的方法处理业务逻辑。如果您需要实现更多的操作,可以根据业务需求编写相应的方法。使用MyBatis-Plus可以大大简化控制器层的编写,提高开发效率。
阅读全文