在SpringMVC中可以利用@ResponseBody,將一個對象轉換成JSON返回給客戶端。當然,這需要配置
(本示例Spring版本是3.1.1)
①引入jackson的包,如jackson-all-1.7.6.jar
②在applicationContext.xml配置JSON轉換器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:component-scan base-package="edu.njcit"></context:component-scan>
<context:annotation-config />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /><!-- json轉換器 -->
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</beans>
注:Spring的集成(在web.xml中通過配置監聽器):
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 集成spring,並對Spring進行實例化 ,這個類會讀取上面指定的配置文件:applicationContext.xml-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
③測試Controller
@Controller
@RequestMapping("/user")
@SessionAttributes("loginUser")
public class UserController {
@RequestMapping(value="/json",method=RequestMethod.POST)
@ResponseBody
public List<User> json() {
List<User> list=new ArrayList<User>();
User user=new User("ldh","劉德華","123","123123");
User user2=new User("zxy","張學友","123","123123");
list.add(user);
list.add(user2);
return list;
}
}
④前臺JSP頁面測試代碼:
<script type="text/javascript">
$(function(){
$.ajax({
type : "POST",
url : "<c:url value='/user/json'/>",
dataType : 'json',
data : {
"pcase" : "test"
},
success : function(data) {
console.info(data);
}
});
});
</script>
最後效果如下: