我的控制器和模型类如下所示:
@Controller
@RequestMapping("/apkinfo")
public class ApkInfoController {
public @ResponseBody String registerApk(@RequestBody ApkInfoReq req){
//Do something
}
}
public class ApkInfo implements Serializable {
private String deviceId;
private List<ApkInfo> apkinfo;
//gettters and setters
}
public class ApkInfo implements Serializable {
private String appName;
private String packageName;
private String version;
private Date installDate;
}
然后我尝试使用 jQuery Ajax 将数据发布到服务器。
var param = {
deviceId: '1234',
apkinfo: [
{appName:'a', packageName:'a.a', version: '1', installDate:"2013-05-03 10:00:00"},
{appName:'b', packageName:'a.b', version: '2', installDate:"2013-05-03 10:00:00"}
]
}
$.ajax({
type: 'POST',
url : 'to_my_server_url',
contentType: 'application/json',
dataType: 'json',
data: param,
error: function(){},
success: function(data){
//do something
}
})
但我收到错误“未支持的 MediaType”。我的 applicationContext.xml 中有 Jackson Mapping 设置,其他方法的 @ResponseBody 工作正常。
应用程序上下文.xml
<context:component-scan base-package: "xx.xx.xxxxx.xx";
<contex:annotation-config />
<mvc:annotation-driven />
<bean id="jacksonMappingConverter" class="org.springframework.htttp.converter.json.MappingJacksonHttpMessageConverter">
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean ="jacksonMappingConverter" />
</list>
</property>
</bean>
如何发布 JOSN 数据?谢谢。
编辑:
在发送请求之前,我将其转换为 JSON 对象:
$.ajax({ ... 数据:JSON.stringify(param) ... });
我的 pom.xml 中有 Jackson 库,@ResponseBody 没有问题。
我错过了 installDate 字段。