web
BlogController
import com.zr.po.Blog;
import com.zr.po.BlogQuery;
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.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("types",typeService.listType());
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);
blogService.add(blog);
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 update(@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";
}
@RequestMapping("search")
public String search(@PageableDefault(size = 5,sort = {"updateTime"},direction = Sort.Direction.DESC)Pageable pageable,BlogQuery blogQuery, Model model){
Page<Blog> page=blogService.listBlog(pageable,blogQuery);
model.addAttribute("page",page);
return "admin/blogs :: blogList";
}
}
IndexController
import com.zr.po.Blog;
import com.zr.po.Tag;
import com.zr.po.Type;
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.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.RequestMapping;
import java.util.List;
@Controller
public class IndexController {
@Autowired
private IBlogService blogService;
@Autowired
private ITypeService typeService;
@Autowired
private ITagService tagService;
@RequestMapping("/")
public String index(@PageableDefault(size = 5,sort = {"updateTime"},direction = Sort.Direction.DESC) Pageable pageable, Model model){
Page<Blog> page = blogService.listBlog(pageable);
List<Type> types=typeService.listTypeTop(6);
List<Tag> tags=tagService.listTypeTop(6);
List<Blog> blogs=blogService.listRecommendBlogTop(3);
model.addAttribute("page",page);
model.addAttribute("types",types);
model.addAttribute("tags",tags);
model.addAttribute("recommendBlogs",blogs);
return "index";
}
}
LoginController
import com.zr.po.User;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpSession;
@Controller
@RequestMapping("/admin")
public class LoginController {
@Autowired
private IUserService userService;
@GetMapping
public String toLogin(){
return "admin/login";
}
@PostMapping("/login")
public String login(String username, String password, HttpSession session, RedirectAttributes redirectAttributes){
User user= userService.checkUser(username,password);
if(user!=null){
session.setAttribute("user",user);
return "admin/index";
}else{
redirectAttributes.addFlashAttribute("message","用户名密码错误");
return "redirect:/admin";
}
}
@GetMapping("/logout")
public String logout(HttpSession session){
session.removeAttribute("user");
return "admin/login";
}
}
TagController
import com.zr.po.Tag;
import com.zr.po.Type;
import com.zr.service.ITagService;
import com.zr.service.ITypeService;
import org.springframework.beans.factory.annotation.Autowired;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("admin/tags")
public class TagController {
@Autowired
private ITagService tagService;
@GetMapping
public String list(@PageableDefault(size = 5,sort = {"id"},direction = Sort.Direction.DESC) Pageable pageable, Model model){
Page<Tag> page=tagService.listType(pageable);
model.addAttribute("page",page);
return "admin/tags";
}
@GetMapping("{id}/delete")
public String delete(@PathVariable Long id){
tagService.deleteType(id);
return "redirect:/admin/tags";
}
@GetMapping("input")
public String input(Model model){
model.addAttribute("tag",new Tag());
return "admin/tags-input";
}
@PostMapping("add")
public String add(Tag tag){
tagService.addTag(tag);
return "redirect:/admin/tags";
}
@GetMapping("{id}/toUpdate")
public String toUpdate(@PathVariable Long id, Model model){
Tag tag= tagService.getTag(id);
model.addAttribute("tag",tag);
return "admin/tags-input";
}
@PostMapping("update/{id}")
public String update(Tag tag,@PathVariable Long id){
tagService.update(id,tag);
return "redirect:/admin/tags";
}
}
TypeController
import com.zr.po.Type;
import com.zr.service.ITypeService;
import org.springframework.beans.factory.annotation.Autowired;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/admin/types")
public class TypeController {
@Autowired
private ITypeService typeService;
@GetMapping
public String list(@PageableDefault(size = 5,sort = {"id"},direction = Sort.Direction.DESC)Pageable pageable, Model model){
Page<Type> page=typeService.listType(pageable);
model.addAttribute("page",page);
return "admin/types";
}
@GetMapping("{id}/delete")
public String delete(@PathVariable Long id){
typeService.deleteType(id);
return "redirect:/admin/types";
}
@GetMapping("input")
public String input(Model model){
model.addAttribute("type",new Type());
return "admin/types-input";
}
@PostMapping("add")
public String add(Type type){
typeService.addType(type);
return "redirect:/admin/types";
}
@GetMapping("{id}/toUpdate")
public String toUpdate(@PathVariable Long id, Model model){
Type type= typeService.getType(id);
model.addAttribute("type",type);
return "admin/types-input";
}
@PostMapping("update/{id}")
public String update(Type type,@PathVariable Long id){
typeService.update(id,type);
return "redirect:/admin/types";
}
}
BlogApplication
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BlogApplication {
public static void main(String[] args) {
SpringApplication.run(BlogApplication.class, args);
}
}