您的位置:首页 > 编程语言 > Java开发

Spring Boot项目实战4(主页信息展示+详情页)

2020-08-04 21:11 363 查看

接上:
https://blog.csdn.net/qq_43923042/article/details/107718118
上面的已经基本完成后台管理功能了,接下来是前台的制作
上面是完成图,可以看到主要需要分类,推荐,新闻,推荐四个列表,即要传这四个参数到前端。
以新闻为例子
1、DAO层:

public interface NewRepository extends JpaRepository<News, Long>, JpaSpecificationExecutor<News> {
@Query("select m from News m where m.Title like ?1 or m.content like  ?1")
Page<News> findByQuery(String query, Pageable pageable);

@Query("select n from News n where n.recommend=true")
List<News> findTop(Pageable pageable);
}

由于其他都是只需要一部分数据,且大概步骤相同,在此不多加描述

2、Service层:主要用到以下函数

public Page<News> listNews(Pageable pageable) {
return newRepository.findAll(pageable);
}
//主页推荐
@Override
public List<News> listRecommentNewTop(Integer size) {
Sort sort = Sort.by(Sort.Direction.DESC, "updateTime");
Pageable pageable = PageRequest.of(0, size, sort);
return newRepository.findTop(pageable);
}

3、Controller层:

@Controller
public class IndexCotroller {
@Autowired
private TypeService typeService;

@Autowired
private TagService tagService;

@Autowired
private NewService newService;

@GetMapping("/")
public String index(@PageableDefault(size = 5, sort = {"updateTime"}, direction = Sort.Direction.DESC) Pageable pageable, Model model) {
model.addAttribute("page", newService.listNews(pageable));
model.addAttribute("types", typeService.listTypeTop(5));
model.addAttribute("tags", tagService.listTagTop(5));
model.addAttribute("recommendNews", newService.listRecommentNewTop(5));
return "index";
}

@PostMapping("/search")
public String search(@PageableDefault(size = 5, sort = {"updateTime"}, direction = Sort.Direction.DESC) Pageable pageable,
@RequestParam String query, Model model) {
model.addAttribute("page", newService.listNews("%" + query + "%", pageable));
model.addAttribute("query", query);
return "search";
}

@RequestMapping("/news/{id}")
public String news(@PathVariable Long id, Model model) {
model.addAttribute("news", newService.getAndConvert(id));
return "new";
}
}

新闻详情的话只要是点击新闻列表就能点进去,就是一个跳转的问题,传过来的时候把id传过来再将数据返回新页面就好了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: