Spring MVC Maven 使用ajax传json数据

本文介绍了如何在Spring MVC Maven项目中配置JSON支持,通过在pom.xml添加Jackson库依赖并重新导入,然后展示了使用Ajax发送JSON数据的函数示例,以及Controller如何处理这些Ajax请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.json配置

1.在pom.xml文件中添加两个jar包的依赖,然后在pom.xml上右键/Maven/reimport导入jar包,不使用maven的自行下载添加jackson-core-2.5.2.jar和jackson-databind-2.5.2.jar

 <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.5.2</version>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.5.2</version>
    </dependency>

2.在spring mvc配置文件mvc-dispatcher-servlet.xml(命名可能不同)中添加配置

  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jsonHttpMessageConverter"/>
            </list>
        </property>
    </bean>

    <bean id="jsonHttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>


二.ajax函数示例

function changeRoom() {
    var domain = "http://localhost:8080";
    var roomType = $("#roomType").val().trim();
    var value = {"roomType": roomType};
    $.ajax({
        url: domain + "/changeRoom",
        type: "post",
        contentType: 'application/json;charset=utf-8',
        data: JSON.stringify(value),
        success: function () {
            console.log("success!");
        },
        error: function () {
            console.log("change room fail!");
        }
    });
}

三.controller处理ajax请求函数

  @RequestMapping(value = "/changeRoom", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<Object> recharge(@RequestBody Map<String, String> data) {
        Map<String,String> map=new HashMap<>();
        String type=data.get("roomType").trim();
        RoomEntity roomEntity=roomService.findByType(type);
        if(roomEntity!=null)
        {
            map.put("price",Integer.toString(roomEntity.getPrice()));
            map.put("image",roomEntity.getImage());
        }
        return new ResponseEntity<Object>(map, HttpStatus.OK);
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值