SpringBoot基础-参数传递

创建项目

创建Spring Boot项目


在com.example.demo包下创建controller.Test类


@RestController

@RequestMapping("test")

public class Test {

    

}

传统参数传递方式

①在Test类中创建demo方法,添加@RequestMapping("demo")注解


@RestController

@RequestMapping("test")

public class Test {

    @RequestMapping("demo")

    public String demo(String name){

        return name;

    }

}

②启动项目,访问 http://localhost:8080/test/demo?name=1234  




③访问时把name改成name1时


 发现历览器没有返回值。可以看出传统方式下,浏览器输入的参数名和后端参数名一致时,数据才可以被接收到,不一致则不能。


④没传参数也可以访问到,只是不会返回数据




传统传输方式,参数是可选的。


@RequestParam注解

①在Test类中创建demo2方法,添加@RequestMapping("demo2")注解,参数前面加@RequestParam注解,这种情况下,name2是必须要有的


@RestController

@RequestMapping("test")

public class Test {

    @RequestMapping("demo2")

    public String demo2(@RequestParam String name2){

        return name2+"\t";

    }

}

 不传name2会报错


②编辑demo2方法,参数前面加@RequestParam("name33")注解,这种情况下,前端访问时,不能使用name3作为参数,要使用注解里面的name33


@RequestMapping("demo2")

    public String demo2(@RequestParam("name33") String name3){

        return name3+"\t";

    }



使用name3或不传参数会报错 




③ 编辑demo2方法,参数前面加@RequestParam(value = "name44")注解,这种情况下,前端访问时,不能使用name4作为参数,要使用注解里面的name44。这等价于@RequestParam("name44")


@RequestMapping("demo2")

    public String demo2(@RequestParam(value = "name44") String name4){

        return name4+"\t";

    }



同样,使用name4或不传参数会报错 




 ④ 编辑demo2方法,参数前面加@RequestParam(name = "name55")注解,这种情况下,前端访问时,不能使用name5作为参数,要使用注解里面的name55。这等价于@RequestParam("name55")


@RequestMapping("demo2")

    public String demo2(@RequestParam(name = "name55") String name5){

        return name5+"\t";

    }



 同样,使用name5或不传参数会报错 




 【总结】可以看出@RequestParam(""),@RequestParam(name = ""),@RequestParam(value= "")的效果是一样的。


⑤编辑demo2方法,参数前面加@RequestParam(name = "name66",required = false)注解。这种情况下name6是可选的,前端访问时使用name6作为参数和没有传参数都相当于没有传参


@RequestMapping("demo2")

    public String demo2(@RequestParam(value = "name66",required = false) String name6){

        return name6+"\t";

    }





 


 ⑦编辑demo2方法,参数前面加@RequestParam(name = "name77",defaultValue = "哈哈哈")注解。这种情况下前端访问时使用name7作为参数和没有传参数都相当于没有传参,后端默认返回 defaultValue 的值


@RequestMapping("demo2")

    public String demo2(@RequestParam(value = "name77",defaultValue = "哈哈哈") String name7){

        return name7+"\t";

    }







这种情况下总会有返回值。


@PathVariable注解

创建方法3,加上注解


@RequestMapping(value ={

            "demo3/{name1}/{name2}/{name3}",

            //因为name3是可选参数,所以要考虑没有传输name3的情况

            "demo3/{name1}/{name2}"})

    public String demo3(

            // 可选 参数

            String name,

            // 必选 参数

            @PathVariable String name1,

            // 必选 参数

            @PathVariable("name2") String name2,

            //加required = false之后变成 可选 参数

            @PathVariable(value = "name3",required = false) String name3

    ){

        return name+"\t"

                +name1+"\t"

                +name2+"\t"

                +name3+"\t";

    }

当传name3参数时走红的,不传时走橙色 




 ①传name3的情况,http://localhost:8080/test/demo3/ALEX/LINUX/C?name=Admin 




 ②不传name3的情况, http://localhost:8080/test/demo3/ALEX/LINUX?name=Admin




//请求方式
//通用类型 @RequestMapping
//Get类型 @GetMapping
//Post类型 @PostMapping

@RequestMapping("/list")
public String requesList()
{
   String aaa = "hello world - Reques";
   return aaa;
}


//传统参数传递
//http://localhost:8080/test/list?name=1234
@RequestMapping("/list")
public String demo(String name){
   return name;
}


// @RequestParam注解 参数传递
// @RequestParam("")
// @RequestParam(name = "")
// @RequestParam(value= "")

@RequestMapping("demo2")
public String demo2(@RequestParam String name2){
   return name2+"\t";
}

public String demo2(@RequestParam("name33") String name3){
   return name3+"\t";
}

public String demo2(@RequestParam(value = "name44") String name4){
   return name4+"\t";
}

public String demo2(@RequestParam(name = "name55") String name5){
   return name5+"\t";
}

public String demo2(@RequestParam(value = "name77",defaultValue = "哈哈哈") String name7){
   return name7+"\t";
}



白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论