项目迭代之:主页管理、页面显示
2020-07-31 16:07
92 查看
项目迭代之:主页管理、页面显示
主页管理
一、在NewsRepository新增findTop和findByQuery
@Query("select n from News n where n.recommend=true ") List<News> findTop(Pageable pageable); @Query("select n from News n where n.title like ?1 or n.content like ?1") Page<News> findByQuery(String query, Pageable pageable);
二、在TagRepository、TypeRepository中补充findTop
@Query("select t from Type t") List<Type> findTop(Pageable pageable);
三、在NewsService中写入主页显示列表、推荐列表、查询新闻
//显示新闻列表 Page<News> listNew(Pageable pageable); //推荐最新新闻列表 List<News> listRecommendNews(Integer size); //全局查询新闻 Page<News> listNew(String query,Pageable pageable);
四、NewsServiceImpl实现
@Override public Page<News> listNew(Pageable pageable) { return newsRepository.findAll(pageable); } @Override public List<News> listRecommendNews(Integer size) { Sort sort = Sort.by(Sort.Direction.DESC,"updateTime"); Pageable pageable = PageRequest.of(0,size,sort); return newsRepository.findTop(pageable); } @Override public Page<News> listNew(String query, Pageable pageable) { return newsRepository.findByQuery(query,pageable); }
五、TagService
List<Tag> listTag(String ids); List<Tag> listTagTop(Integer size);
六、TagServiceImpl
@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用于主页的信息显示、搜索功能
@Autowired private NewsService newsService; @Autowired private TagService tagService; @Autowired private TypeService typeService; @GetMapping("/") public String index(@PageableDefault(size = 3,sort = {"updateTime"},direction = Sort.Direction.DESC) Pageable pageable, Model model){ model.addAttribute("page",newsService.listNew(pageable)); model.addAttribute("types",typeService.listType(3)); model.addAttribute("tags",tagService.listTagTop(3)); model.addAttribute("recommendNews",newsService.listRecommendNews(3)); return "index"; } @PostMapping("/search") public String search(@PageableDefault(size = 3,sort = {"updateTime"},direction = Sort.Direction.DESC) Pageable pageable, @RequestParam String query,Model model){ model.addAttribute("page",newsService.listNew("%"+query+"%",pageable)); model.addAttribute("query",query); return "search"; }
页面显示
一、NewsService
//根据新闻id查找新闻 News getAndConvert(Long id);
二、NewsServiceImpl
@Override public News getAndConvert(Long id) { News news = newsRepository.findById(id).orElse(null); if (news==null){ System.out.println("该新闻不存在"); } News news1 = new News(); BeanUtils.copyProperties(news,news1); String content= news1.getContent(); news1.setContent(MarkdownUtils.markdownToHtmlExtensions(content)); return news1; }
三、IndexController
@RequestMapping("/news/{id}") public String getNews(@PathVariable Long id, Model model){ model.addAttribute("news",newsService.getAndConvert(id)); return "new"; }
相关文章推荐
- 基于thinkphp框架开发的项目在lnmp环境下,出现除了主页能显示,访问其他页面都抛出404异常
- java项目中页面上的图片无法显示
- Vue+elementUI项目实现自定义上传图片并在页面显示,通过点击按钮后发送给后端
- 实现从“环信”下载聊天记录,显示在本地项目页面的功能(二)—— 获取环信聊天记录
- SAP修改科目为未清项管理和行项目显示
- Vue.js项目中管理每个页面的头部标签的方法
- 基于vue-cli项目bulid后,打开"index.html"页面空白出错显示引用css和js路径错误
- 权限管理页面,ajax异步刷新,获取当前用户权限-checkbox显示已选
- Vue.js项目中管理每个页面的头部标签的两种方法
- 部署springboot项目,前端页面可以显示,但是服务器的图片不能显示,报404
- django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面
- OA项目第二天:后端页面的显示
- 学习笔记(08):OmniPlan项目管理就该这样学-设置资源视图显示选项
- vue项目 多文件上传并显示在页面上
- 如何在 GitHub 建立个人主页和项目演示页面
- eclipse 项目管理(隐藏与显示)
- 【SSH网上商城项目实战22】获取银行图标以及支付页面的显示
- 【BUG】---ionic tab-demo项目在modal页跳转URL改变页面不刷新,手动刷新后显示空白
- spring boot新闻管理项目——评论功能和按标签、类型显示新闻
- ASP.NET动态网站开发培训-24.论文管理系统(四、制作Login页面和后台论文管理主页)