@RequestMapping(value = "/save",method = RequestMethod.POST)
@ResponseStatus(value= HttpStatus.OK)
public void save(String str) throws IOException {
System.out.println(str);
}
所有我得到的是空:爲什麼我不能接收字符串,它是空
@RequestMapping(value = "/save",method = RequestMethod.POST)
@ResponseStatus(value= HttpStatus.OK)
public void save(String str) throws IOException {
System.out.println(str);
}
所有我得到的是空:爲什麼我不能接收字符串,它是空
你需要告訴Spring從哪裏獲取str
。
如果你要發送的JSON
{ "str": "sasfasfafa" }
你需要從這個deserialises一類,並與@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());
}
}
如果你只是想發送的JSON文件代替(即sasfasfafa
)的字符串作爲請求的身體,你可以這樣做:
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參數,並通過json接收帖子,我該怎麼寫代碼和json,(對不起,我的英文很差,你能理解我的意思嗎?) –
使用@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);
}
你的意思是(值= 「str」),我sen請求json {「str」:「sasfasfafa」} Httpstatu是400,並且我使用@ RestController,它與@Controller有什麼不同? –
我送一個JSON後像{「STR」:「sasfafsfafa」},但它打印空 –
這是一段時間,因爲我打了Spring MVC的,但也許你需要在你的方法參數的'RequestBody'註解? http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestbody – NilsH
非常感謝您,我嘗試添加@ RequestBody,但它的打印效果類似於{「str」:「sasfafsfafa」},我只想「sasfafsfafa」 –