1. 程式人生 > >【FAQ問題記錄】 File "/webpage/a/mds/mdsquota/mdsQuotaDetail/template.jsp" not found

【FAQ問題記錄】 File "/webpage/a/mds/mdsquota/mdsQuotaDetail/template.jsp" not found

 在開發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;
	}