java 按分类获取相应的文章列表
场景还原:
图一
图二
点击图一 更多 进入图二,要求图二列表显示相应分类的列表,上面筛选条件也显示相应的分类。
解决方法
1、在跳转链接后面添加相应分类的id,例如:
<a class="my_more" th:href="@{'dynamic/article/list?cid='+${cate.id}}">更多...</a>
2、此时链接参数 cid 已经传入控制器参数 prams 中,为{cid = 1}
@GetMapping("/list")
public String list(
Model model,
HttpServletRequest request,
@RequestParam Map<String, String> params,
@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int size
){
// 获取文章列表(分页)
Page<SysArticle> sysArticlePage = new Page<>(page, size);
IPage<SysArticle> sysArticles = sysArticleService.findAll(sysArticlePage,params);
model.addAttribute("sysArticles",sysArticles);
// 获取文章分类列表
List<SysArticleCategory> sysArticleCategories = sysArticleCategoryService.findAll();
model.addAttribute("sysArticleCategories",sysArticleCategories);
return "dynamic/article/list";
}
总结:
作为 java 新人,次需求的难点在于我并没有意识到,链接中的参数cid此时已经传到了方法的参数prams中。而 findAll() 方法在定义的时候有两个参数,一个是 cid,另一个是 title(两个都是用来模糊查询)。所以我此时想要查询分类,传的参数名必须是 cid 。