๐Ÿ’ป ์ฝ”๋”ฉ ์ผ๊ธฐ : [Spring] '@RequestParam' ํŽธ

ybkยท2024๋…„ 4์›” 8์ผ

spring

๋ชฉ๋ก ๋ณด๊ธฐ
5/55
post-thumbnail

๐Ÿ”” '@RequestParam'์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!


๐Ÿ’Ÿ @RequestParam

@RequestParam: HTTP ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „๋‹ฌํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์™€ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์ด ๋™์ผํ•ด์•ผ ํ•˜์ง€๋งŒ, @RequestParam์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„๊ณผ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์„ ๋ช…์‹œ์ ์œผ๋กœ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ’Ÿ @RequestParam ์ƒ๋žต

  1. method1():
@RequestMapping("sub1")
public void method1() {
    System.out.println("method1");
}

method1()์€ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง์ ‘ ๋ฐ›์ง€ ์•Š๊ณ , ๋‹จ์ˆœํžˆ @RequestMapping ์–ด๋…ธํ…Œ์ด์…˜๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์ง€ ์•Š์œผ๋ฏ€๋กœ @RequestParam์„ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


  1. method3():
// main6/sub3?name=kim&age=44 (์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ name, age)
@RequestMapping("sub3")
public void method3(@RequestParam(value = "name", required = false, defaultValue = "None") String param1,
                    @RequestParam(value = "age", required = false, defaultValue = "0") Integer pram2) {
    System.out.println("param1 = " + param1);
    System.out.println("pram2 = " + pram2);
}

method3()๋Š” name๊ณผ age๋ผ๋Š” ์ด๋ฆ„์˜ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ธฐ๋ณธ๊ฐ’(defaultValue)์ด ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. @RequestParam์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„๊ณผ ๋ฉ”์†Œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— value ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งคํ•‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ @RequestParam์„ ์ƒ๋žตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • @RequestParam(required = false)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์–ด๋„ ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์š”์ฒญ์— ํ•ด๋‹น ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ์—๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
    ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ๋Š” ๋ฐ›์•„์˜จ name๊ณผ age๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์š”์ฒญ์— ํ•ด๋‹น ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ๊ฐ null๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

  1. method5():
// main6/sub4?name=์†ํฅ๋ฏผ&age=33
// main6/sub4?name=์ด๊ฐ•์ธ
// ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๋ณ€์ˆ˜๋ช…์ด ๊ฐ™์œผ๋ฉด value๊ฐ’ ์ƒ๋žต ๊ฐ€๋Šฅ
// ๋ฐ”์ธ๋”ฉ : request ๊ฐ’์„ ๋ฉ”์†Œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์— ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ
@RequestMapping("sub5")
public void method4(@RequestParam(required = false) String name,
                    @RequestParam(required = false) Integer age) {
    System.out.println("name = " + name + ", age = " + age);
}

@RequestParam์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— value ์†์„ฑ์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ @RequestParam(required = false)์„ ์ƒ๋žตํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ์ž‘์„ฑํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.


  1. method7():
// main6/sub7?name=ํฅ๋ฏผ&age=77
// main6/sub7?age=77
// main6/sub7?name=ํฅ๋ฏผ
@RequestMapping("sub7")
public void method7(String name, int age) {
    System.out.println("name = " + name);
    System.out.println("age = " + age);
}

// main6/sub8?name=ํฅ๋ฏผ&address=๋Ÿฐ๋˜&address=์„œ์šธ
    @RequestMapping("sub8")
    public void method8(String name, String[] address) {
        System.out.println("name = " + name);
        System.out.println("address = " + Arrays.toString(address));
    }

@RequestParam์„ ์ƒ๋žตํ•˜๊ณ  ์ง์ ‘ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„๊ณผ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ๋žต๋˜๋Š” ์ด์œ ๋Š” ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๊ธฐ๋ณธํƒ€์ž…(wrapper ํฌํ•จ), String(์˜ ๋ฐฐ์—ด)์ด๋ฉด @RequestParam์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

profile
๊ฐœ๋ฐœ์ž ์ค€๋น„์ƒ~

0๊ฐœ์˜ ๋Œ“๊ธ€