java Freemarker模板通用增删改查 控制器层编写
时间: 2023-07-08 20:35:33 浏览: 93
Java模板引擎FreeMarker
好的,下面是一个基本的控制器层编写的示例。
```java
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
// 列表页面
@RequestMapping("/list")
public String list(Model model) {
List<User> userList = userService.getAllUsers();
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.addUser(user);
if (success) {
attributes.addFlashAttribute("success", "新增用户成功");
} else {
attributes.addFlashAttribute("error", "新增用户失败");
}
return "redirect:/user/list";
}
// 编辑页面
@RequestMapping("/edit/{id}")
public String edit(@PathVariable("id") int id, Model model) {
User user = userService.getUserById(id);
model.addAttribute("user", user);
return "user/edit";
}
// 编辑操作
@PostMapping("/edit")
public String edit(User user, RedirectAttributes attributes) {
boolean success = userService.updateUser(user);
if (success) {
attributes.addFlashAttribute("success", "编辑用户成功");
} else {
attributes.addFlashAttribute("error", "编辑用户失败");
}
return "redirect:/user/list";
}
// 删除操作
@PostMapping("/delete/{id}")
public String delete(@PathVariable("id") int id, RedirectAttributes attributes) {
boolean success = userService.deleteUser(id);
if (success) {
attributes.addFlashAttribute("success", "删除用户成功");
} else {
attributes.addFlashAttribute("error", "删除用户失败");
}
return "redirect:/user/list";
}
}
```
上面的代码中,我们定义了一个UserController类,用于处理与用户相关的请求。其中,@Controller和@RequestMapping注解分别表示这是一个控制器类,并指定了访问路径。
我们通过@Autowired注解注入了一个UserService对象,用于处理业务逻辑。
接下来,我们定义了一些请求方法,如列表页面、新增页面、编辑页面等。其中,@RequestMapping注解指定了请求路径,Model参数用于传递数据到模板中。
对于新增、编辑、删除操作,我们使用了@PostMapping注解,指定了请求方法为POST,并使用RedirectAttributes对象传递添加成功或失败的消息。
在每个操作的方法中,我们调用了UserService对象的相应方法,处理了业务逻辑,并根据执行结果返回相应的消息和页面。
总体来说,控制器层主要负责处理请求和响应,调用Service层的方法处理业务逻辑。如果您需要实现更多的操作,可以根据业务需求编写相应的方法。
阅读全文