中软国际实训第十一天——实现标签页面,基与springboot实现归档
标签页面
- service层:
//标签页面查看新闻
Page<News> listNew(Long tagId,Pageable pageable);
NewServiceImpl
@Override
public Page<News> listNew(Long tagId, Pageable pageable) {
return newRepository.findAll(new Specification<News>() {
@Override
public Predicate toPredicate(Root<News> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
Join join = root.join("tags");
return cb.equal(join.get("id"),tagId);
}
},pageable);
}
- controller层
TagShowController
@Controller
public class TagShowController {
@Autowired
private NewService newService;
@Autowired
private TagService tagService;
@GetMapping("/tags/{id}")
public String types(@PageableDefault(size = 8,sort = {"updateTime"},direction = Sort.Direction.DESC)
Pageable pageable, @PathVariable Long id, Model model){
List<Tag> tags = tagService.listTagTop(20);
if (id==-1){
id = tags.get(0).getId();
}
model.addAttribute("tags",tags);
model.addAttribute("page",newService.listNew(id,pageable));
model.addAttribute("activeTagId",id);
return "tags";
}
}
效果展示
归档功能
- service层
Map<String,List<News>> archiveNew();
Long countNew();
- controller层
ArchiveShowController
package com.zr0726.news.web;
import com.zr0726.news.service.NewService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class ArchiveShowController {
@Autowired
private NewService newService;
@GetMapping("/archives")
public String archives(Model model){
model.addAttribute("archiveMap",newService.archiveNew());
model.addAttribute("newsCount",newService.countNew());
return "archives";
}
}