@RequestMapping(value = "/save",method = RequestMethod.POST)
@ResponseStatus(value= HttpStatus.OK)
public void save(String str) throws IOException {
System.out.println(str);
}
我得到的只是null:
答案 0 :(得分:0)
你需要告诉Spring从哪里获得str
。
如果您要发送JSON
{ "str": "sasfasfafa" }
您需要一个从此反序列化的类,并使用@RequestBody
注释方法参数。
public class StrEntity {
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
public class MyController {
@RequestMapping(value = "/save",method = RequestMethod.POST)
@ResponseStatus(value= HttpStatus.OK)
public void save(@RequestBody StrEntity entity) throws IOException {
System.out.println(entity.getStr());
}
}
如果您只想发送一个字符串作为请求正文(即sasfasfafa
)而不是JSON文档,您可以这样做:
public class MyController {
@RequestMapping(value = "/save",method = RequestMethod.POST)
@ResponseStatus(value= HttpStatus.OK)
public void save(@RequestBody String str) throws IOException {
System.out.println(str);
}
}
无法将JSON { "str": "sasfasfafa" }
作为请求主体发送,并且只有一个String作为控制器中的方法参数。
答案 1 :(得分:0)
使用@RequestParam
注释获取参数。
@RequestMapping(value = "/save",method = RequestMethod.POST)
@ResponseStatus(value= HttpStatus.OK)
public void save(@RequestParam(name="str") String str) throws IOException {
System.out.println(str);
}