通过 Jackson 框架就可以把 Java 里面的对象直接转化成 Js 可以识别的 Json 对象。
步骤如下 :
a、加入 Jackson.jar
b、在配置文件中配置 json 的映射
c、在接受 Ajax 方法里面可以直接返回 Object,List 等,但方法前面要加上@ResponseBody
详细步骤:
需要注意的是,在 SpringMVC 的控制器方法中,可以使用 @ResponseBody 注解将返回值直接转换为 JSON 格式,并自动写入响应体中。另外,还可以使用 @RestController 注解来替代 @Controller 和 @ResponseBody 的组合,从而简化代码。
示例:
@RequestMapping
注解来处理AJAX请求@Controller
@RequestMapping("/ajax")
public class AjaxController {
@RequestMapping(value = "/getData", method = RequestMethod.GET)
public @ResponseBody String getData() {
// 处理业务逻辑,获取数据
String data = "Hello AJAX!";
return data;
}
@RequestMapping(value = "/saveData", method = RequestMethod.POST)
public @ResponseBody String saveData(@RequestBody String data) {
// 处理业务逻辑,保存数据
// 这里的 @RequestBody 注解用于接收前端传递的数据
return "Data saved successfully!";
}
}
// 发送GET请求
$.ajax({
url: "/ajax/getData",
type: "GET",
success: function(response) {
// 处理响应数据
console.log(response);
},
error: function(xhr, status, error) {
// 处理错误
console.error(error);
}
});
// 发送POST请求
$.ajax({
url: "/ajax/saveData",
type: "POST",
data: JSON.stringify({data: "Hello"}),
contentType: "application/json",
success: function(response) {
// 处理响应数据
console.log(response);
},
error: function(xhr, status, error) {
// 处理错误
console.error(error);
}
});
在上述示例中,/ajax/getData
对应于Controller中的getData
方法,用于返回数据给前端。/ajax/saveData
对应于Controller中的saveData
方法,用于接收前端发送的数据并进行处理。
使用@ResponseBody
注解可以将方法的返回值直接作为响应数据返回给前端,而不是将其解析为视图。
注意,为了接收前端发送的JSON数据,你需要在Controller方法的参数上添加@RequestBody
注解。同时,在发送POST请求时,需要将请求头Content-Type
设置为application/json
,并且将数据转换为JSON字符串进行发送(如上述示例中使用了JSON.stringify()
方法)。
这样,就实现了 SpringMVC 和 AJAX 的相互调用。通过 AJAX,前端可以异步地向后端发送请求,并获取到后端返回的数据,实现动态更新页面的效果。