gpt4 book ai didi

spring - 如何让Spring MVC返回CSV像返回JSON一样方便

转载 作者:行者123 更新时间:2023-12-02 09:54:33 28 4
gpt4 key购买 nike

我知道Spring MVC可以轻松返回Json格式的模型;然而,我尝试了不同的方法来返回 CSV 格式的模型(通过 Jackson),但未能成功。

我应该做什么?

我附上我的模型代码、 Controller 代码和 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 :

@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 -

输入状态报告

消息

描述 服务器拒绝了此请求,因为请求实体的格式不受所请求方法的请求资源支持。

最佳答案

您不想消耗而是生成 csv。按照您的方式,该服务期望以 csv 格式提供输入,这就是它提示“请求实体的格式不受支持”的原因。这里的关键是“请求”——它需要一些 csv 格式的输入。将“消费”更改为“生产”应该可以解决您的问题。

关于spring - 如何让Spring MVC返回CSV像返回JSON一样方便,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937842/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com