【Spring Boot 实战与进阶】Controller 的使用及获取请求参数的示例
| 注解 | 释义 |
| :-- | :-- |
| @Controller | 处理 http 请求 |
| @RestController | 返回 json,相当于 @Controller+@ResponseBody |
| @RequestMapping | 配置 URL 映射 |
| @GetMapping | 组合注解,是 @RequestMapping(method = RequestMethod.GET)的缩写 |
| @PostMapping | 组合注解,是 @RequestMapping(method = RequestMethod.POST)的缩写 |
| @PathVariable | 获取 URL 中的数据 |
| @RequestParam | 获取请求参数的值 |
示例一:返回 Json 字符串或者跳转到页面
取决于是否有 @ResponseBody,示例使用的类都用注解 @RestController,因此包含 @ResponseBody,故返回 Json 字符串。
@RequestMapping(value="/demo/java")
public String java() {
return "java";
}
示例二:不传参
@RequestMapping(value="/demo/json")
public Map<String, Object> json() {
Map<String, Object> map = new HashMap<>();
map.put("sex", "男");
map.put("name", Arrays.asList("tom","bob","tony"));
return map;
}
示例三:传参
@RequestMapping(value="/demo/getId")
public Map<String, Object> getId(Integer id) {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
return map;
}
示例四:参数设置
name:请求传递的字段,映射到方法参数。
required:必输设置,默认 true。
defaultValue:默认值
@RequestMapping(value="/demo/login")
public Map<String, Object> login(
@RequestParam(name = "user", required = false, defaultValue = "admin") String account,
@RequestParam(name = "pass", required = false, defaultValue = "123456") String password) {
Map<String, Object> map = new HashMap<>();
map.put("account", account);
map.put("password", password);
return map;
}
示例五:传递对象
@RequestMapping(value="/demo/bean")
public Map<String, Object> bean(User user) {
Map<String, Object> map = new HashMap<>();
map.put("account", user.getAccount());
map.put("password", user
.getPassword());
return map;
}
示例六:把参数作为 URL 地址的一部分
@GetMapping("/user/{id}")
public void getUser(@PathVariable int id) {
System.out.println("查询到了 id="+id);
}
发送请求:http://localhost:8080/user/1
控制台输出:
评论