get方式:
1. 路径变量:
@GetMapping("/{name}")
public String print(@PathVariable("name") String name) {
return "我是" + name;
}
前台请求http://192.168.18.71:8080/susan
2. 请求参数
@GetMapping("/print")
public String print(@RequestParam(name = "name", required = false) String name) {
return "我是" + name;
}
前台请求http://192.168.18.71:8080/print?name=dasheng
post方式
1.带注解 json格式
@PostMapping("/print")
public String print(@RequestBody User user) {
return "我是" + user.getName() + ",今年" + user.getAge() + "岁了";
}
前台请求
2.不带注解 表单提交
@PostMapping("/print")
public String print(User user) {
return "我是" + user.getName() + ",今年" + user.getAge() + "岁了";
}
前台请求
总之一句话,后台用什么方式接,前台就用什么方式传。
至于注解的详细用法,这里不做赘述。我只是想记录一下,前两天我和前端对接口,方法上用了@RequestBody ,他就死活传不过来了,也是尴尬。 那个问题,在header里加上contentType:application/json,有中文把utf-8也加上,参数是json格式的就行了。不再赘述。嘻嘻。
$.ajax({
url: "http://localhost:8201/search",
type: "post",
contentType: "application/json;charset=UTF-8",
dataType: "json",
data: JSON.stringify({key: keyword})
}).success(function (res) {
console.log(res)
})