是否有可能从JSON转换为域对象与@RequestParam(Is it possible to c

2019-10-18 12:01发布

我做的一个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