主页管理
新闻列表
在NewService.java接口中添加一个listView函数:
//主页显示列表
Page<News> listNew(Pageable pageable);
在NewServiceImpl.java中实现该函数:
@Override
public Page<News> listNew(Pageable pageable) {
return newRepository.findAll(pageable);
}
在IndexController.java中对应页面添加这个list:
@GetMapping("/")
public String index(@PageableDefault(size = 3,sort = {
"updateTime"},direction = Sort.Direction.DESC)
Pageable pageable, Model model){
//添加新闻
model.addAttribute("page",newService.listNew(pageable));
return "index";
}
标签排行榜
在TagRepository.java中添加findTop函数
//TagRepository.java
public interface TagRepository extends JpaRepository<Tag,Long> {
Tag findByName(String name);
@Query("select t from Tag t")
List<Tag> findTop(Pageable pageable);
}
在TagService.java中添加返回标签排行最多的函数:
//标签排行榜
List<Tag> listTagTop(Integer size);
然后在TagServiceImpl.java中使用TagRepository中的函数实现该函数:
@Override
public List<Tag> listTagTop(Integer size) {
Sort sort = Sort.by(Sort.Direction.DESC,"newsList.size");
Pageable pageable = PageRequest.of(0,size,sort);
return tagRepository.findTop(pageable);
}
在IndexController.java中加入获取到的List:
@GetMapping("/")
public String index(@PageableDefault(size = 3,sort = {
"updateTime"},direction = Sort.Direction.DESC)
Pageable pageable, Model model){
//主页新闻
model.addAttribute("page",newService.listNew(pageable));
//标签排行榜
model.addAttribute("tags",tagService