spring mvc 返回json
服务器端返回的是文本,客户端得到文本后将文本转换成json就可以了,服务器端将对象转换成json 的文本形式,并且需要设定文本的类型为text/plain,charset=UTF-8
所以在 application-context 中添加StringConverter及jsonConvert的bean 以及servlet mvc 注解处理适配器
<bean id="stringConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 用于将对象转换为 JSON -->
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringConverter" />
<ref bean="jsonConverter" />
</list>
</property>
</bean>
在Controller 函数中要表明 返回值是ResponseBody的内容
@RequestMapping("/ajax2.do")
public @ResponseBody UserInfo ajax2(String userId){
System.out.println(userId);
UserInfo user = new UserInfo();
if("1001".equals(userId)){
user.setUserId(1001);
user.setUserName("悟空");
}else{
user.setUserId(1002);
user.setUserName("八戒");
}
return user;
}
Js 代码
$("#but2").click(function(){
$.post("ajax2.do",{userId:$("#userId2").val()},function(data){
$("#info2").html(data.userId+"---"+data.userName);
},"json");
});