1.首先我们需要在pom.xml中引入使用JSON所需要的相关依赖
<!-- json需要的 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
2.本次测试使用了JQuery所以须在springmvc.xml加入配置,以访问到静态资源
<!-- 主要作用于@Controller,激活该模式 下面是一种简写形式,完全可以手动配置替代这种简写形式; 它会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter
两个bean, 是spring MVC为@Controllers分发请求所必须的 -->
<mvc:annotation-driven />
<!-- 找到静态资源 -->
<mvc:default-servlet-handler />
3.编写发送请求的视图
<%@ page contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html >
<html>
<head>
<meta charset="utf-8">
<title>JSONTest</title>
<script type="text/javascript" src="js/jquery-2.1.1.js"></script>
<script type="text/javascript">
function myTest(){
var obj=$("#subject");
var opt;
$.post("mvc/json",function(data){
console.info(data.string);
$.each(data.list,function(index,item){
opt='<option>'+item+'</option>';
obj.append($(opt));
});
});
}
</script>
</head>
<body>
<a οnclick="myTest()">JSONTest</a>
<div>
<select id="subject">
</select>
</div>
</body>
</html>
4.编写请求处理类,注意须在请求处理方法前加上@ResponseBody
package com.yc.controllers;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller //标识为请求处理类
@RequestMapping("mvc") //拦截/mvc的请求
public class HelloController {
@ResponseBody
@RequestMapping("/json")
public Map<String,Object> jsonTest(){
Map<String,Object> map=new HashMap<String, Object>();
List<String> list=new ArrayList<String>();
for (int i=0; i<5; i++) {
list.add("aa"+i);
}
map.put("string", "字符串");
map.put("list", list);
return map;
}
}
5.测试结果
我们来发送请求走一波,点击JSONTest,看运行结果
OK,到这里我们就完成了SpringMVC的JSON实现,关于SpringMVC的基本配置大家可以看我的另一篇博客“SpringMVC的HelloWorld实现”