控制器方法:
@RequestMapping("/getdata")
@ResponseBody
public HashMap getFirstpageData(Pager pager) {
PageMyBatis list = firstPageBS.search(pager);
HashMap params = new HashMap();
params.put("Rows", list.getResult());
params.put("Total", list.getTotalCount());
return params;
}
瀏覽器報 500,無具體錯誤信息。
catalina.out、localhost.yyyy-mm-dd.log)必有根因(NPE、SQL 異常、序列化失敗等)。firstPageBS.search 是否拋異常,MyBatis Mapper XML SQL 是否正確,參數映射是否匹配。@RequestParam 是否漏標。HashMap 含非序列化對象(如 PageMyBatis 實例),建議構建純 POJO DTO 或 Map 且值為基本類型/集合/POJO。close() 調用。// 在 Controller 臨時加 try-catch 打印堆棧
try {
PageMyBatis list = firstPageBS.search(pager);
...
} catch (Exception e) {
e.printStackTrace(); // 控制台直接見根因
return errorMap;
}
@ControllerAdvice + @ExceptionHandler 返回結構化錯誤碼,避免 500 白屏。500 無提示 ≠ 無錯誤,**必看後端日誌**。優先排查 Service/DAO 異常、參數綁定、序列化三大塊。