新闻的编辑,删除,新增,搜索功能。
- 编辑
@GetMapping("/news/{id}/toUpdate")
public String toUpdate(@PathVariable Long id , Model model){
setTypeAndTag(model);
News news = newService.getNew(id);
news.init();
model.addAttribute("news",news);
return INPUT;
}
- 删除
@RequestMapping("/news/{id}/delete")
public String delete(@PathVariable Long id,RedirectAttributes attributes){
newService.deleteNew(id);
attributes.addFlashAttribute("message","删除成功");
return REDIRECT_LIST;
}
- 新增
public void setTypeAndTag(Model model){
model.addAttribute("types",typeService.listType());
model.addAttribute("tags",tagService.listTag());
}
@GetMapping("/news/input")
public String input(Model model){
setTypeAndTag(model);
model.addAttribute("news",new News());
return INPUT;
}
@PostMapping("/news/add")
public String post(News news, RedirectAttributes attributes, HttpSession session){
news.setUser((User)session.getAttribute("user"));
news.setType(typeService.getType(news.getType().getId()));
news.setTags(tagService.listTag(news.getTagIds()));
News news1;
if(news.getId()==null){
news1 = newService.saveNews(news);
}else {
news1 = newService.updateNew(news.getId(),news);
}
if(news1==null){
attributes.addFlashAttribute("message","操作失败");
}else {
attributes.addFlashAttribute("message","操作成功");
}
return REDIRECT_LIST;
}
- 搜索
@PostMapping("/news/search")
public String search(@PageableDefault(size=3,sort = {"updateTime"},direction = Sort.Direction.DESC)
Pageable pageable, NewQuery newQuery, Model model){
model.addAttribute("page",newService.listNew(pageable,newQuery));
return "admin/news :: newsList";
}
- 结果展示
主界面:
编辑:可以更改之前写过的标签和分类
删除:
新增:跟编辑界面一样
搜索:用模糊搜索来匹配标题里面是否包含所搜索的符号