Tim*_*Tim 13 html java ajax json spring-mvc
我有一个JAVA EE后端,我正在使用Spring MVC.我有一个像这样的AJAX调用:
function getAllProjects() {
$.getJSON("project/getall", function(allProjects) {
???
});
}
Run Code Online (Sandbox Code Playgroud)
我的后端系统:
@RequestMapping(value="/getall", method=RequestMethod.GET)
public @ResponseBody ??? getAllProjects() {
???
}
Run Code Online (Sandbox Code Playgroud)
我必须实施哪些内容才能实现?在后端系统中,我从数据库中调用唯一的id和项目的名称,例如:
1 => My Test Project
4 => Another One
23 => One More Test
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?
axt*_*avt 14
你需要:
<mvc:annotation-driven>到您的配置Map<Integer, String>对于更复杂的情况,当您需要为每个处理程序方法配置映射过程时,您可以使用MappingJacksonJsonView而不是@ResponseBody像Stepen C建议的那样.
您需要阅读Spring用户指南的第15.5章,其中介绍了如何配置MVC视图,以及第16.10章,其中简要介绍了JSON映射视图.然后阅读javadocs MappingJacksonJsonView等.
您还可以使用org.json的JSONArray和JSONObject来构造JSON输出,然后返回一个String值作为@ResponseBody.
http://www.json.org/javadoc/org/json/JSONObject.html
@RequestMapping(value="/getall", method=RequestMethod.GET)
public @ResponseBody String getAllProjects() {
...
JSONArray jsonItems = new JSONArray();
JSONObject jsonItem1 = new JSONObject();
jsonItem1.put("id", "1");
jsonItem1.put("name", "My Test Project");
JSONObject jsonItem2 = new JSONObject();
jsonItem2.put("id", "4");
jsonItem2.put("name", "Another one");
jsonItems.put(jsonItem1);
jsonItems.put(jsonItem2);
return jsonItems.toString();
}
Run Code Online (Sandbox Code Playgroud)
你应该在你的ajax请求的成功回调中得到这样的东西.
[{
"id":"1",
"name":"My Test Project"
},{
"id":"4",
"name":"Another one"
}]
Run Code Online (Sandbox Code Playgroud)
您可以使用此数据使用javascript附加您的文件或使用_underscore模板来呈现您的UI.