我有一个期望对象的更新方法(AJAX服务)。这个对象由JSon填充,我想测试它,但我不能......
我使用spring mvc来设置我的服务。
我的服务:
@RequestMapping(value="texte/updateMyObject", method= RequestMethod.POST, consumes = "application/json;charset=UTF-8")
public void updateMyObject(MyObject myObject) throws IOException {
logger.info("UPDATE !!!");
}
我的对象:
public class MyObject {
private Integer id;
private String name;
public MyObject(){}
// getter & setter
}
我使用Postman(Chrome工具)来测试我的服务:https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm
我想我必须发送好的JSON,但我不知道哪一个。
目前我测试了这种模式:
"MyObject" : {"id" : "1", "name" : "test"}
或 {" ID" :" 1"," name" :"测试"}
修改1:
调用我的服务时,myObject的字段都为空。
编辑2:
我播放这种HTTP请求:
POST /myapp/texte/updateMyObject.sp HTTP/1.1
Host: localhost:8080
Content-Type: application/json; charset=UTF-8
Cache-Control: no-cache
{"id" : "1", "name" : "test"}
编辑3:
我的web.xml中的配置弹出。如果你需要我的背景问我。
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext-springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>*.sp</url-pattern>
</servlet-mapping>
编辑4: 我做了以下测试,向您显示我的对象没有填充。
答案 0 :(得分:2)
您需要将JSON de / serializer库链接到您的项目,例如杰克逊:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
然后,使用以下控制器:
@RequestMapping(value = "texte/updateMyObject", method = RequestMethod.POST, consumes = "application/json")
public void updateMyObject(@RequestBody MyObject myObject) {
// ...
}
发送请求时:
POST /texte/updateMyObject
headers:
Content-Type: application/json
data:
{ "id" : "1", "name" : "test" }
myObject
应填补。
答案 1 :(得分:0)
所有关于控制器将接收的JSON文档中的属性名称。
在您的操作参数上,参数的类型必须具有与将接收的JSON文档上的字段名称匹配的属性。
例如:看看这个动作:
@RequestMapping(value="texte/updateMyObject", method=RequestMethod.POST)
String doSomething(Person person) {
}
人员班级将如下所示:
class Person {
String name;
int age;
//getters and setters
}
您的JSON文档必须是这样的:
{'name':'Henrique','age':35}