不用jsp如何返回一个页面

编程

答:通过将 文件 内容写出到 ServletOutputStream 中

例如: 在 struts中

    Action: 

          说明:Action中方法的返回值 String 表示要 forward 的jsp页面,若要直接向浏览器写个页面,就直接返回void

    

//导出用户列表

public void exportExcel(){

try {

//1、查找用户列表

//2、导出

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("application/x-execl");

response.setHeader("Content-Disposition", "attachment;filename=" + new String("用户列表.xls".getBytes(), "ISO-8859-1"));

ServletOutputStream outputStream = response.getOutputStream();

userService.exportExcel(userService.findObjects(), outputStream);

//流用完之后要关闭

if(outputStream != null){

outputStream.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

UserService 中 exportExcel的实现:

   

public  void exportUserExcel(List<User> userList, ServletOutputStream outputStream) {

try {

//1、创建工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

//1.1、创建合并单元格对象

CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0, 4);//起始行号,结束行号,起始列号,结束列号

//1.2、头标题样式

HSSFCellStyle style1 = createCellStyle(workbook, (short)16);

//1.3、列标题样式

HSSFCellStyle style2 = createCellStyle(workbook, (short)13);

//2、创建工作表

HSSFSheet sheet = workbook.createSheet("用户列表");

//2.1、加载合并单元格对象

sheet.addMergedRegion(cellRangeAddress);

//设置默认列宽

sheet.setDefaultColumnWidth(25);

//3、创建行

//3.1、创建头标题行;并且设置头标题

HSSFRow row1 = sheet.createRow(0);

HSSFCell cell1 = row1.createCell(0);

//加载单元格样式

cell1.setCellStyle(style1);

cell1.setCellValue("用户列表");

//3.2、创建列标题行;并且设置列标题

HSSFRow row2 = sheet.createRow(1);

String[] titles = {"用户名","帐号", "所属部门", "性别", "电子邮箱"};

for(int i = 0; i < titles.length; i++){

HSSFCell cell2 = row2.createCell(i);

//加载单元格样式

cell2.setCellStyle(style2);

cell2.setCellValue(titles[i]);

}

//4、操作单元格;将用户列表写入excel

if(userList != null){

for(int j = 0; j < userList.size(); j++){

HSSFRow row = sheet.createRow(j+2);

HSSFCell cell11 = row.createCell(0);

cell11.setCellValue(userList.get(j).getName());

HSSFCell cell12 = row.createCell(1);

cell12.setCellValue(userList.get(j).getAccount());

HSSFCell cell13 = row.createCell(2);

cell13.setCellValue(userList.get(j).getDept());

HSSFCell cell14 = row.createCell(3);

cell14.setCellValue(userList.get(j).isGender()?"男":"女");

HSSFCell cell15 = row.createCell(4);

cell15.setCellValue(userList.get(j).getEmail());

}

}

//5、输出

workbook.write(outputStream);

workbook.close();

} catch (Exception e) {

e.printStackTrace();

}

}

 

以上是 不用jsp如何返回一个页面 的全部内容, 来源链接: utcz.com/z/512360.html

回到顶部