BlogServiceimpl
@Override
public void update ( Blog blog) {
Blog one = blogDao. getOne ( blog. getId ( ) ) ;
BeanUtils. copyProperties ( one, blog) ;
one. setUpdateTime ( new Date ( ) ) ;
blogDao. save ( one) ;
}
TagService
@Override
public List< Tag> getTagByIds ( String tagIds) {
List< Long> ids= new ArrayList < > ( ) ;
if ( tagIds != null && tagIds != "" ) {
String[ ] s = tagIds. split ( "," ) ;
for ( int i= 0 ; i< s. length; i++ ) {
if ( ! StringUtils. isEmpty ( s[ i] ) ) {
ids. add ( new Long ( s[ i] ) ) ;
}
}
}
List< Tag> tags = tagDao. findAllById ( ids) ;
return tags;
}
BlogController
package com. zr. web;
import com. zr. po. Blog;
import com. zr. po. Tag;
import com. zr. po. User;
import com. zr. service. IBlogService;
import com. zr. service. ITagService;
import com. zr. service. ITypeService;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. boot. autoconfigure. data. web. SpringDataWebProperties;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. Pageable;
import org. springframework. data. domain. Sort;
import org. springframework. data. web. PageableDefault;
import org. springframework. stereotype. Controller;
import org. springframework. ui. Model;
import org. springframework. web. bind. annotation. GetMapping;
import org. springframework. web. bind. annotation. PathVariable;
import org. springframework. web. bind. annotation. RequestMapping;
import javax. servlet. http. HttpSession;
import java. util. List;
@Controller
@RequestMapping ( "admin/blogs" )
public class BlogController {
@Autowired
private IBlogService blogService;
@Autowired
private ITypeService typeService;
@Autowired
private ITagService tagService;
@RequestMapping
public String blogs ( @PageableDefault ( size = 5 , sort = { "updateTime" } , direction = Sort. Direction. DESC) Pageable pageable, Model model) {
Page< Blog> page = blogService. listBlog ( pageable) ;
model. addAttribute ( "page" , page) ;
return "admin/blogs" ;
}
@GetMapping ( "{id}/delete" )
public String delete ( @PathVariable Long id) {
blogService. deleteById ( id) ;
return "redirect:/admin/blogs" ;
}
@GetMapping ( "input" )
public String input ( Model model) {
model. addAttribute ( "blog" , new Blog ( ) ) ;
model. addAttribute ( "types" , typeService. listType ( ) ) ;
model. addAttribute ( "tags" , tagService. listType ( ) ) ;
return "admin/blogs-input" ;
}
@RequestMapping ( "add" )
public String add ( Blog blog, HttpSession session) {
User user = ( User) session. getAttribute ( "user" ) ;
blog. setUser ( user) ;
String tagIds = blog. getTagIds ( ) ;
List< Tag> tagList= tagService. getTagByIds ( tagIds) ;
blog. setTags ( tagList) ;
if ( blog. getId ( ) == null) {
blogService. add ( blog) ;
} else {
blogService. update ( blog) ;
}
return "redirect:/admin/blogs" ;
}
@RequestMapping ( "{id}/toUpdate" )
public String toUpdate ( @PathVariable Long id, Model model) {
Blog blog= blogService. getBlog ( id) ;
blog. initTags ( id) ;
model. addAttribute ( "blog" , blog) ;
model. addAttribute ( "types" , typeService. listType ( ) ) ;
model. addAttribute ( "tags" , tagService. listType ( ) ) ;
return "admin/blogs-input" ;
}
}