当前位置: 首页 > news >正文

SpringMVC 怎么和 AJAX 相互调用的

通过 Jackson 框架就可以把 Java 里面的对象直接转化成 Js 可以识别的 Json 对象。

步骤如下 :
a、加入 Jackson.jar
b、在配置文件中配置 json 的映射
c、在接受 Ajax 方法里面可以直接返回 Object,List 等,但方法前面要加上@ResponseBody

详细步骤:

  • 在 SpringMVC 中配置一个控制器来处理 AJAX 请求。可以使用 @RequestMapping 注解来指定请求的 URL 和请求方法。该控制器方法应该返回一个 JSON 格式的响应数据。
  • 在前端页面中,使用 JavaScript 发起 AJAX 请求。可以使用原生的 XMLHttpRequest 对象,也可以使用现代浏览器提供的 fetch 函数或者 jQuery 提供的 $.ajax 方法。
  • 在 AJAX 请求中,指定要调用的 SpringMVC 控制器的 URL,并设置请求方法为 GET 或 POST,根据实际情况选择合适的参数传递方式。
  • 当 SpringMVC 接收到 AJAX 请求时,会根据请求的 URL 和方法匹配到对应的控制器方法。在该方法中,可以执行相应的业务逻辑,并将结果封装成 JSON 格式返回给前端。
  • 前端页面在接收到 AJAX 响应后,可以通过回调函数处理返回的数据,并更新页面内容或执行其他操作。

需要注意的是,在 SpringMVC 的控制器方法中,可以使用 @ResponseBody 注解将返回值直接转换为 JSON 格式,并自动写入响应体中。另外,还可以使用 @RestController 注解来替代 @Controller 和 @ResponseBody 的组合,从而简化代码。

示例:

  • 在SpringMVC的Controller中,你可以使用@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!";}
}
  • 在前端页面中,你可以使用JavaScript的AJAX方法来发送请求并处理响应。例如:
// 发送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,前端可以异步地向后端发送请求,并获取到后端返回的数据,实现动态更新页面的效果。

http://www.lryc.cn/news/96011.html

相关文章:

  • UCDOS和WPS推动计算机领域的汉字化发展,中文编程该谁力扛大旗?
  • golang+layui提升界面美化度--[推荐]
  • 42. 接雨水
  • Python学习阶段路线和内容
  • RocketMQ教程-安装和配置
  • 【LeetCode】55.跳跃游戏
  • Docker学习路线12:开发者体验
  • 后端服务迁移方案及过程记录
  • StAX解析
  • [MCU]AUTOSAR COM STACK - CAN协议栈
  • React:从 npx开始
  • 力扣热门100题之接雨水【困难】
  • Stable-Diffusion-Webui部署SDXL0.9报错参数shape不匹配解决
  • Springboot @Async 多线程获取返回值
  • 怎样接入chatGPT
  • Docker consul容器服务更新与发现
  • [算法很美打卡] 多维数组篇 (打卡第一天)
  • 微服务系列(1)-who i am?
  • 记录这这段时间发生的事情。
  • 发布npm包流程
  • 面试官:Redis 为什么变慢了?怎么解决?
  • Docker:开启应用程序开发新篇章的利器
  • Python面向对象(三)(继承、封装)
  • Redis Stream 流的深度解析与实现高级消息队列【一万字】
  • 一个灵活、现代的Android应用架构
  • redis高级篇 springboot+redis+bloomfilter实现过滤案例
  • mybatis学习笔记之在WEB中应用MyBatis
  • 宿主可以访问公网 Docker容器里无法访问 Temporary failure in name resolution
  • CentOS7系统MBR、GRUB2、内核启动流程报错问题
  • 剑指YOLOv5改进最新MPDIoU损失函数(23年7月首发论文):超越现有多种G/D/C/EIoU,高效准确的边界框回归的损失,高效涨点