下列是主要的controller层代码:
//导出
@RequestMapping(value="export")
public void export( Model model,
HttpServletRequest request, HttpServletResponse response){
String menuid=request.getParameter("menuid");
if (!StringUtil.isEmpty(menuid))
request.getSession().setAttribute("menuid", menuid);
int page = request.getParameter("page") == null ? 1 : Integer
.parseInt(request.getParameter("page"));
String hotelName=request.getParameter("hotelName");
String hotelCity=request.getParameter("hotelCity");
String hotelDetail=request.getParameter("hotelDetail");
Pager pager = new Pager();
pager.setPageth(page);
pager.setPageSize(Integer.MAX_VALUE);
Pagination<TestHotel> testHotelPagination=testHotelService.getTestHotelList(hotelName,hotelCity,hotelDetail,pager);
System.out.println(testHotelPagination);
try {
response.setCharacterEncoding("GBK");
response.setContentType("APPLICATION/OCTET-STREAM");
String downloadFileName = "酒店测试报表.csv";
response.setHeader("Content-Disposition", "attachment;filename=" + new String(downloadFileName.getBytes("gbk"), "iso8859-1"));
PrintWriter writer = response.getWriter();
int id = 1;
StringBuffer sb = new StringBuffer();
sb.append("序号,酒店名称,酒店城市,酒店详情\n");
for (TestHotel testHotel : testHotelPagination.getRecords()) {
sb.append(id++).append(",").append(testHotel.toString()).append("\n");
}
log.info(sb.toString());
writer.print(sb.toString());
writer.print("\n");
writer.print("\n");
writer.print(" 报表生成时间," + DateUtil.format(new Date(), "yyyy-MM-dd HH:mm") + "\n");
writer.close();
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}