場景還原:
圖一
圖二
點擊圖一 更多 進入圖二,要求圖二列表顯示相應分類的列表,上面篩選條件也顯示相應的分類。
解決方法
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 。