码迷,mamicode.com
首页 > 编程语言 > 详细

spring mvc接收JSON格式的参数

时间:2015-12-31 12:37:18      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

1.配置spring解析json的库

 

  <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.8</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
 

 

2.设置spring mvc 的配置文件

配置中资源解析器,messageConverters属性接收一个list,如果有其他解析器可以依次向其中添加,

不同的请求content类型spring会选择不同的解析器,解析后的内容会通过特殊的注解传送到spring mvc controller的方法中。

 

<beans:bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <beans:property name="messageConverters">
            <util:list>
                <beans:bean id="stringHttpMessageConverter" class="com.weishu.platform.integration.support.spring.ConfigurableStringHttpMessageConverter">
                    <beans:constructor-arg value="UTF-8"/>
                </beans:bean>
               
                <beans:bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
               
            </util:list>
        </beans:property>
    </beans:bean>

 

3.配置spring mvc controller 

使用注解@RequestBody配置参数为json对象,注意目前spring 配合 Jackson JSON库还不能正确处理泛型,如果将@RequestBody DeviceCommand[] deviceCommands 替换为List<DeviceCommand> deviceCommands ,spring 将不能将json解析为DeviceCommand对象,而是转换为LinkedHasMap对象。

 

 @RequestMapping(value = "/admin/deviceManagement/update_device_white_list_status", method = RequestMethod.POST)
 @ResponseBody
 public String updateUserWhiteListStatus(Model model, @RequestBody DeviceCommand[] deviceCommands) {
  JSONObject result = new JSONObject();
  try {
   deviceService.changeDeviceWhiteListStatus(Arrays.asList(deviceCommands));
   result.put("success", true);
  } catch (Exception e) {
   result.put("success", false);
   result.put("message", e.getMessage());
   e.printStackTrace();
  }
  return result.toJSONString();
 }

 

4.在请求中设置json对应的content类型

 

  $.ajax({
    url : update_device_white_list_status.service,
    dataType : json,
    contentType : application/json,
    data : $.toJSON(deviceCommands),
    success : function(e) {
     $.messager.progress(close);
     if (e.success) {
      whiteListGrid.datagrid("reload");
      $.messager.alert(成功, 操作成功, info);
     
     } else {
      $.messager.alert(请注意, 操作失败: + e.message, error);
     }
    },
    error : function(e) {
     $.messager.progress(close);
     $.messager.alert(请注意, 操作失败: + e.message, error);
    }
   });

 

spring mvc接收JSON格式的参数

标签:

原文地址:http://www.cnblogs.com/zhujiabin/p/5091084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!