0
点赞
收藏
分享

微信扫一扫

微信小程序阻止返回事件

目录

一、@RequestMapping  路由映射

二、参数传递

1、传递单个参数

2、传递多个参数

3、传递对象

4、后端参数重命名


一、@RequestMapping  路由映射

  • 指定请求访问的路径
  • 既可以修饰类,又可以修饰方法

@RequestMapping支持Get、Post、Delete等多种请求方式

@RestController
@RequestMapping("/user")
public class HelloController {
@RequestMapping("/sayhi")
public String sayHi(){
return "Hi,SpringBoot";
}

@RequestMapping("/sayhello")
public String sayHello(){
return "Hello,SpringBoot";
}
}

注意: / 可以省略,但建议企业开发时,统一加上,前加后不加

@RequestMapping注解没有写属性名,默认是value

若要限制请求方式,使用method属性  如:

@RequestMapping(value = "/sayhi",method = RequestMethod.POST)
public String sayHi(){
return "Hi,SpringBoot";
}

比如上面的代码就限制了/sayhi路径的访问必须是POST请求

二、参数传递

此处我们加上类路径/user避免路由重复(读者可忽略这句话,不影响)

1、传递单个参数

    @RequestMapping("/m1")
public String m1(String name){
return "接收到的参数name:" + name;
}

后端接收单个参数,此处是name,字符串类型,并返回字符串

前端传过来的请求中需要带上name参数,需要名称完全一样,参数前用?与路由隔开

浏览器直接访问:

Postman构造请求(本地路由既可以用127.0.0.1,也可以用localhost):

底层逻辑:从请求的参数中,获取参数名为name的值,并给name赋值

2、传递多个参数

    @RequestMapping("/m2")
public String m2(String name, Integer age){
return "接收到的参数name:" + name + " ;age:" + age;
}

后端接收多个参数,此处是name和age,字符串类型和整形,并返回字符串

前端传过来的请求中需要带上name参数和age参数,需要名称完全一样,参数前用?与路由隔开,不同的参数间用&隔开

参数发送的顺序可以任意调换

当多个参数传值时,可以不用每个参数都传值,不传值的参数默认是null(使用包装类的前提下)

此处不用age,用Integer的原因是如果使用基本类型,必须要传值,不传会报错,所以开发时,建议使用包装类

底层逻辑:从请求的多个参数中,获取参数名为name和age的值,并给对应名称的数据赋值

3、传递对象

    @RequestMapping("/m3")
public String m3(Person person){
return "接收到的参数person:" + person.toString();
}

Person中有以下属性

 

后端接收一个对象或对象中的属性,此处是Person,并返回字符串

前端传过来的请求中可以依然用传递参数的方式,参数需要是对象中的属性名,需要名称完全一样,参数前用?与路由隔开,不同的参数间用&隔开

可以看到,用传递多个参数的方式依然可以,后端会自动读取参数中对象中名称一样的属性,对于没有的属性则不理睬

底层逻辑:从请求的参数中,自动识别与对象属性名一致的参数,并给对象中对应名称的属性赋值

4、后端参数重命名

应用场景:传过来的参数名称不方便改变,但又想改变后端中自己使用的参数名称,不想用传过来的参数名称

    @RequestMapping("/m4")
public String m4(@RequestParam(value = "name", required = false) String username){
return "接收到的参数name:" + username;
}

后端:此刻用了@RequestParam后,前端传过来的参数为name(value中的值),会自动赋值给username

前端:参数名需要与value中的值保持一致

注意:如果进行了重命名,就必须要使用@RequestParam注解里的名字

底层逻辑:此处只是运用了@RequestParam注解实现了参数重命名,传递参数的逻辑与前面几种方式一致

举报

相关推荐

0 条评论