注解
@RestController是@Controller和@ResponseBody的结合,可以直接将结果转化为JSON格式。
@RestController
public class HelloController {
···
}
@RequestMapping将对应的路径和函数进行绑定,可以指定(method=GET[POST]),为省略此method的参数,对应Restful风格的有
@RequestMapping("/hello")
public String say(){
return "Hello";
}
传参
接收参数主要有GET和POST
GET
- @PathVariable,获取路径参数。即url/{id}这种形式。
- @RequestParam, 获取查询参数。即url?name=这种形式
// 访问请求 http://localhost:8080/say/2321?name=hanyffynah
@RequestMapping("/say/{id}")
public String say(@PathVariable(name = "id") String id, @RequestParam(name = "name") String name){
return "User: "+ id + ". Hello," + this.url;
}
POST
- @RequestBody,获取对应的提交和对象属
@PostMapping(path = "/users")
public void demo1(@RequestBody Person person) {
System.out.println(person.toString());
}
其中Person
public class Person {
private int age;
private String name;
@Override
public String toString(){
return "name:"+name+";age="+age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
POST的JSON
{
"name":"hanyffynah",
"age": 18
}