今天是实习的第十天,昨天我们完成了新闻,实现了新增、修改新闻,今天的主要任务是实现前台页面,在前台有首页、分类、标签等部分可供浏览。
观察首页不难发现,首页中分为新闻、分类、标签几部分,新闻与之前的type和tag类似,同样使用分页查询,定义每页最多显示5则,并且依据更新时间进行排序,符合人的阅读习惯,在左边的类别和标签中显示了前五条类别和标签的显示,不能直接使用findAll函数,需要自定义一个findTop(int n)函数查询前n条数据,此时需要自定义SQL语句,可以使用SpringData的JPA@Query实现自定义查询方法。
Query查询有如下几个特点:
- 只需要将
@Query
标记在继承了Repository
的自定义接口的方法上,就不需要遵循查询方法命名规则。 - 支持命名参数及索引参数的使用
- 本地查询
实现了findTop查询便可以取出前5条分类和标签,将其分别加入model中进行显示,首页的新闻、分类和标签的显示基本完成,但是还要实现分类、标签点击后能够显示对应分类、标签的新闻,所以定义一个TypeShowController,当id为-1时,获取到第一个type的id,当id不为-1时,根据id获取对应的type,再type的类型查出对应类型的对象即可实现分类,这与之前实现的搜索非常类似。
标签页面在header中将标签展现出来,在下方将显示对应标签的新闻即可,具体实现方法与分类完全一样。
在完成今天的项目后,我们小组内部进行讨论,确定了我们的第二个项目为笔记管理系统,在经过成员分工、需求分析等步骤确定了每个人的分工,我负责实现菜单管理和角色管理,在自己的实现过程中遇到了很多问题,如页面无法正常显示,无法正常跳转等,希望在后续继续和小组成员进行讨论交流,顺利地将项目完成下去,