我正在从JavaScript脚本(AngularJS)执行多部分请求,我将JSON数据作为第一部分,将可选文件作为第二部分。是否可以将@RequestParam(“data”)自动从JSON转换为我的应用程序中的类?与@RequestParam("data") Dog dog
答案 0 :(得分:3)
是。在对象(http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestbody)之前使用@RequestBody注释:
public void jsonMethod(@RequestBody Dog dog)
注意:您必须让jackson将json转换为自定义对象。杰克逊maven依赖:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.1</version>
</dependency>
答案 1 :(得分:2)
像这样定义您的方法签名:
@RequestMapping(value="/jsonRequest")
public @ResponseBody SomeResult jsonHandler(@RequestBody(required=false) Dog dog,
@RequestPart(value="part2", required=false) String part2) {
...
}
答案 2 :(得分:0)
是的,你必须使用杰克逊。 对传入参数使用@RequestBody注释。 为codehous.jackson添加依赖项。 并将JsonConverter添加到spring上下文文件
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</mvc:message-converters>
</mvc:annotation-driven>
顺便说一下,你可以看看这里的教程。他们使用JSON和spring MVC:sites.google.com/site/upida4j/example