1. 程式人生 > 其它 >java工具類HttpUtil,支援http和https(忽略Certification)

java工具類HttpUtil,支援http和https(忽略Certification)

前端(GET方式),如果引數有null,後端接收到的不是null而是字串“null”,可能導致SQL邏輯錯誤,可以再控制層或者服務處處理一下

 window.location.href =request.baseURL+
       "/IntentListExport?isExpand="+this.selectCondition.isExpand+
       "&botName="+this.currentBotName+
       "&intent="+this.selectCondition.intent

controller

@GetMapping("/IntentListExport")
public void IntentListExport(Entity entity, HttpServletResponse response) throws IOException {
ExcelWriter writer=botExerciseSampleService.export(botExerciseSampleSelectCondition);
//out為OutputStream,需要寫出到的目標流
response.setContentType("application/vnd.ms-excel;charset=utf-8");
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyyMMdd");
String fileName = "CheckBot_Release_Sample_"+botExerciseSampleSelectCondition.getBotName()+"_"+format.format(date)+"-"+ DateUtil.currentSeconds() + ".xls";
//CheckBot_Release_Auto Test_20210518-124009

//test.xls是彈出下載對話方塊的檔名,不能為中文,中文請自行編碼
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
ServletOutputStream out = response.getOutputStream();

writer.flush(out, true);
// 關閉writer,釋放記憶體
writer.close();
//此處記得關閉輸出Servlet流
IoUtil.close(out);
}

業務實現

public ExcelWriter export(BotExerciseSampleSelectCondition botExerciseSampleSelectCondition){
        ExcelWriter writer 
= ExcelUtil.getWriter(); List<BotExerciseSample> result=botExerciseSampleMapper.findByCondition(botExerciseSampleSelectCondition); if (result.size()>65535){ List<List<BotExerciseSample>> lists= ListUtils.partition(result,65535); for (int i=0;i<lists.size();i++){ //設定表頭 setDataSheet(writer,lists.get(i),i,botExerciseSampleSelectCondition.getBotName()); } }else { setDataSheet(writer,result,0,botExerciseSampleSelectCondition.getBotName()); } return writer; } private void setDataSheet(ExcelWriter writer,List<BotExerciseSample> result,int index,String name){ if (index==0){ writer.renameSheet(name); }else { writer.setSheet(name+index); } writer.addHeaderAlias("bot_chname", "bot名稱"); writer.addHeaderAlias("intent", "意圖"); writer.addHeaderAlias("question", "問題"); writer.addHeaderAlias("answer_text","文本回答"); writer.addHeaderAlias("answer_picture_name", "圖片回答"); writer.addHeaderAlias("answer_link", "連結回答"); writer.write(result, true); }