2013-08-16 67 views
1

我正在做一个JavaScript脚本(AngularJS)的多部分请求,我得到了JSON数据作为第一部分,并将可选文件作为第二部分。是否有可能将@RequestParam(“数据”)从JSON自动转换为我的应用程序中的类?像@RequestParam("data") Dog dog是否有可能使用@RequestParam从JSON转换为域对象

回答

3

是的。

public void jsonMethod(@RequestBody Dog dog) 

注意:你的对象(http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestbody)之前使用@RequestBody注释您必须杰克逊JSON转换到您的自定义对象。杰克逊Maven的依赖性:

<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.7.1</version> 
</dependency> 
+0

但是这是一个多部分的请求...我可以有选择地得到一个@RequestParam(“文件”) – LuckyLuke

+2

@LuckyLuke还有'@ RequestPart'你可能想看看。 –

2

定义你的方法签名是这样的:

@RequestMapping(value="/jsonRequest") 
public @ResponseBody SomeResult jsonHandler(@RequestBody(required=false) Dog dog, 
     @RequestPart(value="part2", required=false) String part2) { 
... 
} 
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和弹簧MVC:sites.google.com/site/upida4j/example

相关问题