标签:
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.8</version> <type>jar</type> <scope>compile</scope> </dependency>
配置中资源解析器,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>
使用注解@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(); }
$.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‘); } });
标签:
原文地址:http://www.cnblogs.com/zhujiabin/p/5091084.html