@responseBody注解
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中:
/*
User对象:userName pwd
那么在前台接收到的数据为:'{"userName":"xxx","pwd":"xxx"}',即,一个json串
*/
@RequestMapping("/aa")
@ResponseBody
public User aa(User user){
return user;
}
前台请求以及获取数据
var ob = {};
$.ajax({
type: "post",
url: "${ctx}/patient/tbPatientBasicInfo/findQualityControlPeopleNumber",
data:ob,
dataType: "json",
async: false,
success: function (data) {
var name = data.userName ;
var p = data.pwd;
},
error: function (err) {
}
});
他的效果等同于通过response对象输出指定格式的数据(不用注解@ResponseBody的方法):
/*
User对象:userName pwd
那么在前台接收到的数据为:'{"userName":"xxx","pwd":"xxx"}',即,一个json串
*/
@RequestMapping("/aa")
public void aa(User user, HttpServletResponse response){
response.getWriter.write(JSONObject.fromObject(user).toString());
}