/** * Task管理的Controller, 使用Restful风格的Urls: * * List page : GET /task/ * Create page : GET /task/create * Create action : POST /task/save * Update page : GET /task/update/{id} * Update action : POST /task/save/{id} * Delete action : POST /task/delete/{id} */ @Controller @RequestMapping(value = "/task") public class TaskController { @Autowired private TaskService taskService; @RequestMapping(value = { "list", "" }) public String list(Model model) { Long userId = getCurrentUserId(); List<Task> tasks = taskService.getUserTask(userId); model.addAttribute("tasks", tasks); return "task/taskList"; } @RequestMapping(value = "create") public String createForm(Model model) { model.addAttribute("task", new Task()); return "task/taskForm"; } @RequestMapping(value = "save") public String create(@Valid @ModelAttribute("newTask") Task newTask, RedirectAttributes redirectAttributes) { User user = new User(getCurrentUserId()); newTask.setUser(user); taskService.saveTask(newTask); redirectAttributes.addFlashAttribute("message", "创建任务成功"); return "redirect:/task/"; } @RequestMapping(value = "update/{id}") public String updateForm(@PathVariable("id") Long id, Model model) { model.addAttribute("task", taskService.getTask(id)); return "task/taskForm"; } @RequestMapping(value = "save/{id}") public String update(@Valid @ModelAttribute("task") Task task, RedirectAttributes redirectAttributes) { taskService.saveTask(task); redirectAttributes.addFlashAttribute("message", "更新任务成功"); return "redirect:/task/"; } @RequestMapping(value = "delete/{id}") public String delete(@PathVariable("id") Long id, RedirectAttributes redirectAttributes) { taskService.deleteTask(id); redirectAttributes.addFlashAttribute("message", "删除任务成功"); return "redirect:/task/"; } /** * 使用@ModelAttribute, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出Task对象,再把Form提交的内容绑定到该对象上。 * 因为仅update()方法的form中有id属性,因此本方法在该方法中执行. */ @ModelAttribute("task") private Task getTask(@RequestParam(value = "id", required = false) Long id) { if (id != null) { return taskService.getTask(id); } return null; } /** * 不要绑定对象中的id属性. */ @InitBinder protected void initBinder(WebDataBinder binder) { binder.setDisallowedFields("id"); } private Long getCurrentUserId() { ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); return user.id; } }
最近下载更多
jeep123456 LV10
2020年6月9日
hanyoujun LV1
2018年7月7日
丷小胤丷 LV7
2018年1月26日
复制三次胖狗 LV7
2017年12月6日
lee123321 LV22
2017年11月28日
LHJ123 LV30
2017年11月9日
chinafjfzlj LV31
2017年9月7日
foxmail10001 LV1
2017年5月16日
仗键走天涯 LV2
2017年1月22日
feifei0605 LV1
2016年10月28日
最近浏览更多
adshdadsad
5月8日
暂无贡献等级
沈从文 LV3
3月17日
YUProject LV8
2022年12月21日
gshnlj LV15
2022年7月28日
hellobailin LV3
2022年4月14日
shamo1234 LV1
2021年7月6日
yeYEYE了 LV1
2021年7月4日
秦sir3067683450 LV10
2021年6月2日
Qolmen LV12
2021年2月3日
silence5200 LV1
2020年11月1日