首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SpringMVC 同頁面顯示查詢結果不生效的排查

     編輯:程式設計綜合問答

現象

首次載入顯示所有記錄,點擊查詢按鈕提交表單,Controller 返回同一視圖 user/uploadWithPage 並攜帶查詢列表,但頁面數據未更新。

代碼分析

@RequestMapping(value="/searchByFileName", method=RequestMethod.GET)
public ModelAndView searchByFilename(@RequestParam String filename) {
    ModelAndView mav = new ModelAndView("user/uploadWithPage");
    Page<Upload> page = uploadService.findUploadByFileName(filename, 0, 10);
    mav.addObject("upload", page.getContent()); // 傳的是 List
    return mav;
}

可能原因

  1. 視圖層變量名不匹配:JSP/Thymeleaf 中遍歷的是 ${page} 或 ${uploads},而 Controller 放的是 upload。
  2. 分頁對象未傳遞:前端分頁組件需 Page 對象(含 totalPages, number 等),僅傳 List 導致分頁失效。
  3. 請求參數綁定失敗:檢查表單 name=\"filename\" 是否與 @RequestParam 一致。
  4. Service/DAO 層過濾邏輯:如回答所述,DAO 中可能將空字符串 \"\" 視為有效條件過濾掉所有數據。

建議修正

mav.addObject("page", page); // 傳整個 Page 對象
// 或
mav.addObject("uploads", page.getContent());
mav.addObject("totalPages", page.getTotalPages());
// 前端對應修改遍歷變量名

檢查 DAO 的 where filename like '%' || ? || '%' 在參數為空時是否返回全表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved