This spring4 has deprecated
the configuration and implementation of spring 4.x as follows:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <!-- For download --> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" > <property name = "supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean>
@RequestMapping("downloadExcel") public ResponseEntity<byte[]> downloadExcel(HttpServletRequest request) { // String path = request.getContextPath(); // String basePath = request.getScheme() + "://" + request.getServerName() // + ":" + request.getServerPort() + path; String realPath = request.getServletContext().getRealPath("/"); String filepath = realPath + "/admin_files/ordertemplate.xls"; File file = new File(filepath); HttpHeaders headers = new HttpHeaders(); String fileName = null; try { fileName = new String("Order template file.xls".getBytes("UTF-8"), "iso-8859-1"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace (); }// In order to solve the problem of garbled Chinese names headers.setContentDispositionFormData("attachment", fileName); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); try { return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace (); return null; } }