我知道Spring MVC可以轻松返回Json格式的模型; 但是,我尝试了很多不同的方法来返回CSV格式的模型(通过杰克逊),但无法成功.
我该怎么办?
我附上我的模型代码,控制器代码和gradle.build,如下所示:
非常感谢!
模型:
@JsonPropertyOrder({ "staffName", "name" }) public class Greeter { String name; String staffName[]; public String getName() { return name; } public void setName(String name) { this.name = name; } public String[] getStaffName() { return staffName; } public void setStaffName(String[] staffName) { this.staffName = staffName; } }
控制器:
@Controller public class GreetingController { @RequestMapping(value = "/greeter/json", method = RequestMethod.GET) public @ResponseBody Greeter getGreeterInJSON() { Greeter greeter = new Greeter(); greeter.setName("default"); greeter.setStaffName(new String[] { "ye", "lichi" }); return greeter; } @RequestMapping(value = "/greeter/csv", method = RequestMethod.GET, consumes = "text/csv") public @ResponseBody Greeter getGreeterInCSV(HttpServletResponse response) { Greeter greeter = new Greeter(); greeter.setName("default"); greeter.setStaffName(new String[] { "ye", "lichi" }); CsvMapper mapper = new CsvMapper(); CsvSchema schema = mapper.schemaFor(Greeter.class); ObjectWriter writer = mapper.writer(schema.withLineSeparator("\n")); File greeterCSV = new File("greeterCSV.csv"); try { writer.writeValue(greeterCSV, greeter); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return greeter; } }
build.gradle依赖项:
dependencies { compile group: 'commons-collections', name: 'commons-collections', version: '3.2' compile ('org.springframework:spring-context:4.0.0.RELEASE') compile("org.springframework.boot:spring-boot-starter-web:0.5.0.M6") compile("org.thymeleaf:thymeleaf-spring3:2.0.17") // compile "org.codehaus.jackson:jackson-mapper-asl:1.9.13" compile 'com.fasterxml.jackson.core:jackson-databind:2.3.0' compile 'com.fasterxml.jackson.core:jackson-core:2.3.0' compile 'com.fasterxml.jackson.core:jackson-annotations:2.3.0' compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.3.0' testCompile group: 'junit', name: 'junit', version: '4.+' testCompile "org.mockito:mockito-all:1.9.5" }
编辑:
Tomcat错误:
HTTP状态415 -
类型状态报告
信息
说明服务器拒绝此请求,因为请求实体的格式不是所请求方法的请求资源所支持的格式.