使用springmvc实现http接口时,发现问题。将参数直接放入url里面参数能被正常解析到如下:
public void test( Long roleId, Integer roleCode, String roleName);
参数roleId 可以被赋值。
可是 参数不放入url里面。以json 格式传输参数时,需要以下配置
@RequestMapping(value="/test", method=RequestMethod.POST, consumes = "application/json")
@ResponseBody
public BooleanResult test( @RequestBody RelationForm form, Long roleId, Integer roleCode, String roleName);
@ResponseBody
public BooleanResult test( @RequestBody RelationForm form, Long roleId, Integer roleCode, String roleName);
@RequestBody 这个参数时必须的,这样一来 json的参数会有spring封装成 from。而roleId这些参数时接受不到参数的。
如果在 roleId前面加上 @RequestBody 调用会返回 http 415的错误。
1、开发这个功能必须的包如下:
maven引用
<dependency> <!-- http接口接受json格式参数必须的包 -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7</version>
</dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7</version>
</dependency>
2、springmvc.xml的配置文件
<mvc:annotation-driven /> 也是必须的,否则mvc是不可用的。