春季 MVC -> JSON 响应

2022-09-04 06:25:41

我有一个JAVA EE后端,我正在使用Spring MVC。我有一个像这样的AJAX调用:

function getAllProjects() {
        $.getJSON("project/getall", function(allProjects) {
            ???
        });
    }

我的后端系统:

@RequestMapping(value="/getall", method=RequestMethod.GET)
public @ResponseBody ??? getAllProjects() {
    ???
}

我必须实现哪些内容才能使其正常工作?在后端系统中,我从数据库中调用项目的唯一ID和名称,例如:

1 => My Test Project
4 => Another One
23 => One More Test

id和项目名称应该返回到前端系统,这样我就可以构建一个HTML ul/li列表:

<ul>
    <li><a href="/1">My Test Project</a></li>
    <li><a href="/4">Another One</a></li>
    <li><a href="/23">One More Test</a></li>
</ul>

有谁知道这是怎么做到的?


答案 1

您需要:

  • Jackson JSON Mapper 添加到类路径
  • 添加到您的配置<mvc:annotation-driven>
  • 返回Map<Integer, String>

对于更复杂的情况,当您需要为每个处理程序方法配置映射过程时,您可以使用代替 ,如 Stepen C 所建议的那样。MappingJacksonJsonView@ResponseBody


答案 2

您需要阅读《Spring 用户指南》的第 15.5 章,其中介绍了如何配置 MVC 视图,第 16.10 章简要介绍了 JSON 映射视图。然后阅读javadocs等。MappingJacksonJsonView