我做的一个JavaScript脚本(AngularJS)multipart请求和我得到的JSON数据作为第一部分,以及一个可选的文件作为第二。 是否有可能有@RequestParam(“数据”)在我的应用从JSON自动转换为一类? 像@RequestParam("data") Dog dog
Answer 1:
是。 之前你的对象(使用@RequestBody注释http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestbody ):
public void jsonMethod(@RequestBody Dog dog)
注意:您必须杰克逊JSON转换到您的自定义对象。 杰克逊Maven的依赖性:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.1</version>
</dependency>
Answer 2:
这样定义你的方法签名:
@RequestMapping(value="/jsonRequest")
public @ResponseBody SomeResult jsonHandler(@RequestBody(required=false) Dog dog,
@RequestPart(value="part2", required=false) String part2) {
...
}
Answer 3:
是的,你必须使用杰克逊。 使用@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
文章来源: Is it possible to convert from JSON to domain object with @RequestParam