1,请求映射路径与非JSON参数:
- **使用 @RequestMapping 注解:**
- 作用:**设置当前控制器类/方法请求访问路径,如果设置在类上方统一设置当前控制器方法请求访问路径后缀;**
- 如:
@RestController
@RequestMapping("/books")
public class BookController {
//注入业务层的bean
@Autowired
private BookService bookService;
//设置控制器方法类型
/**
* 查询所有
*/
@GetMapping
public Result setTextSelectAllBooks(){
List <Book> books = bookService.selectAllBook();
//设定返回的结果集
Integer code = books.size() > 0 ? Code.GET_OK :Code.GET_ERR;
String msg = books.size() > 0 ? "查询成功":"查询失败";
return new Result(books,code,msg);
}
@ResponseBody (方法注解):设置当前控制器方法相应内容为当前返回值,无需解析;
A,Get请求的参数传递:(URL地址传参,请求行)
- **普通参数:**url地址传参,地址参数名与形参变量名相同,定义形参即可接收参数;
@RequestMapping("/commonParam")
@ResponseBody
public String commonParam(String name ,int age){
System.out.println("普通参数传递 name ==> "+name);
System.out.println("普通参数传递 age ==> "+age);
return "{'module':'common param'}";
}
- **地址参数与变量名不同的普通参数:**
- 要使用** @RequestParam** 与地址参数名进行绑定;
- **注意:当只有一个参数的时候,只要名字对上了就不用@RequestParam也可以进行参数传递;**
@RequestMapping("/commonParamDifferentName")
@ResponseBody
public String commonParamDifferentName(@RequestParam("name")String userName , int age){
System.out.println("普通参数传递 userName ==> "+userName);
System.out.println("普通参数传递 age ==> "+age);
return "{'module':'common param different name'}";
}
@RequestParam : 绑定请求参数与处理器方法形参间的关系;(形参注解)
- **POJO类型参数:用实体类属性来接收参数:**
- 请求参数名与形参对象属性名相同;
- 
@RequestMapping("/pojoParam")
@ResponseBody
//POJO对象其实就是:实体类对象User
public String pojoParam(User user){
System.out.println("pojo参数传递 user ==> "+user);
return "{'module':'pojo param'}";
}
- **嵌套的POJO类型对象:**POJO对象中包含POJO对象
- url地址传参格式:
//User类中包含Address类对象
public class User {
private String name;
private int age;
private Address address;
}
//Address类:
public class Address {
private String province;
private String city;
}
@RequestMapping("/pojoParam")
@ResponseBody
public String pojoParam(User user){
System.out.println("pojo参数传递 user ==> "+user);
return "{'module':'pojo param'}";
}
- **数组参数:**请求参数名与形参对象属性名相同且请求参数为多个,定义数组类型形参即可接收参数:
- 
@RequestMapping("/arrayParam")
@ResponseBody
public String arrayParam(String[] likes){
System.out.println("数组参数传递 likes ==> "+ Arrays.toString(likes));
return "{'module':'array param'}";
}
- **集合保存普通参数**:请求参数名与形参集合对象名相同且请求参数为多个:
- 要使用 **@RequestParam 绑定参数关系;**
- 
@RequestMapping("/listParam")
@ResponseBody
public String listParam(@RequestParam List<String> likes){
System.out.println("集合参数传递 likes ==> "+ likes);
return "{'module':'list param'}";
}
B,Post请求的参数传递:
- **使用表单进行参数传递,form表单传参;**
- 
- **步骤与Get请求的同理;(略)**
2,JSON的请求参数传递:(传递JSON数据)
3,JSON的响应参数传递:(传递JSON数据)
,* JSON对象的参数传递(常用):
A,JSON请求:
在框架中,JSON对象转字符串都由框架来进行
要在 SpringMVC配置类加上这个开启webMVC的功能之一:使用JSON对象作为参数进行传递;
在请求体中获取的JSON对象,要加上@RequestBody 注解,且该注解只能存在一个,因为一次只有一个请求体;
嵌套的pojo对象的json对象写法:
注意:json对象的数组格式:[ … ] ;如果出现格式不对,服务器无法识别,就会出现4000错误;