今天要做一导出的功能,原来只做过使用POI 之类的工具导出,所以看看原来的项目的导出是怎么做的, 看完之后我的感觉是懵逼的, 直接就JSP 页面, 设置了一个头, jsp 页面就直接导出成excel 格式了。
首先在spring boot 1.5.4 版本启用视图解析的功能:
1 在pom 中添加依赖
<!-- spring boot tomcat jsp 支持开启 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- servlet支持开启 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
2 在properties 文件中添加属性
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
3 controller 代码
@ApiOperation(
value = "导出巡道记录",
notes = "权限"
)
@RequestMapping(value="xdjl",method=RequestMethod.GET)
public String xdjl(Model model,@RequestParam("xcid") String xcid){
RcyhGlxcsjb glxc = glxcService.queryOne(xcid);
glxc.setTq(stateAndEnumService.getMjlxValueByCode(glxc.getTq()));
model.addAttribute( "xcsj", glxc );
return "xdjl";
}
4 JSP 页面 添加这个头
<% response.setHeader("Content-disposition","inline; filename="+new String("巡道记录表.xls".getBytes("GBK"),"ISO-8859-1")); %>
<%@ page language="java" contentType="application/msexcel; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<% response.setHeader("Content-disposition","inline; filename="+new String("巡道记录表.xls".getBytes("GBK"),"ISO-8859-1")); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>导出巡道记录</title>
</head>
<body>
啷个哩个啷
</body>
</html>