【FAQ問題記錄】 File "/webpage/a/mds/mdsquota/mdsQuotaDetail/template.jsp" not found
阿新 • • 發佈:2018-11-19
在開發ERP系統下載模板問題時,控制檯報錯如下:
File "/webpage/a/mds/mdsquota/mdsQuotaDetail/template.jsp" not found
出現這個問題的原因是因為controller中用了兩次response響應到前臺來。
出錯前程式碼如下:
@RequiresPermissions("mds:mdsquota:mdsQuota:import") @RequestMapping(value = "template") public String getFileTemplate(String id,HttpServletResponse response,RedirectAttributes redirectAttributes) { try { String fileName ="材料定額資料匯入模板.xlsx"; String title="紅色字型為必填欄位,序號和單臺定額必須為整數,備註資訊不能超過50個字"; List<String > headerList = new ArrayList<>(); //示例資料 List<String> exampleList = new ArrayList<>(); new ExportExcel().insertList(headerList, exampleList).createExcel(title,headerList,exampleList).write(response,fileName).dispose(); addMessage(redirectAttributes,"模板下載成功"); } catch (Exception e) { addMessage(redirectAttributes,"模板下載失敗!失敗資訊:"+e.getMessage()); } return "redirect:"+Global.getAdminPath()+"/mds/mdsquota/mdsQuota/edit?id="+id; }
在這段程式碼中 最後發起轉發前,程式已經通過response(new ExportExcel().insertList(headerList, exampleList).createExcel(title,headerList,exampleList).write(response,fileName).dispose();),響應到了前端,所以發生了控制檯那樣的報錯。
最後還是在轉發之前發通過return null,解決的報錯。
@RequiresPermissions("mds:mdsquota:mdsQuota:import") @RequestMapping(value = "template") public String getFileTemplate(String id,HttpServletResponse response,RedirectAttributes redirectAttributes) { try { String fileName ="材料定額資料匯入模板.xlsx"; String title="紅色字型為必填欄位,序號和單臺定額必須為整數,備註資訊不能超過50個字"; List<String > headerList = new ArrayList<>(); //示例資料 List<String> exampleList = new ArrayList<>(); new ExportExcel().insertList(headerList, exampleList).createExcel(title,headerList,exampleList).write(response,fileName).dispose(); addMessage(redirectAttributes,"模板下載成功"); return null; } catch (Exception e) { addMessage(redirectAttributes,"模板下載失敗!失敗資訊:"+e.getMessage()); } return "redirect:"+Global.getAdminPath()+"/mds/mdsquota/mdsQuota/edit?id="+id; }