@RequestParam

Reference: Spring Docs - RequestParam

@RequestParam ์ด๋ž€?

  • ์™ธ๋ถ€์—์„œ API๋กœ ๋„˜๊ธด parameter๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” annotation

  • HTTP ์š”์ฒญ์˜ parameter๋ฅผ method parameter๋กœ binding ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค

  • ์ฃผ๋กœ client๊ฐ€ ์ „๋‹ฌํ•œ ์š”์ฒญ์˜ parameter ๊ฐ’์„ Controller method์˜ parameter๋กœ ๋ฐ›์•„์™€์„œ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

  • ex)

    @RequestParam("name") String name

    ์™ธ๋ถ€์—์„œ name์ด๋ž€ ์ด๋ฆ„์œผ๋กœ ๋„˜๊ธด parameter๋ฅผ method parameter name (String name) ์— ์ €์žฅํ•œ๋‹ค

@RequestParam ์‚ฌ์šฉํ•˜๊ธฐ

  • Spring MVC

    • query parameter, form data, multipart ์š”์ฒญ์˜ parts์™€ ๋งคํ•‘๋œ๋‹ค

    • ์ด๋Š” Servlet API๊ฐ€ query parameter์™€ form data๋ฅผ parameters ๋ผ๋Š” ํ•˜๋‚˜์˜ map์œผ๋กœ ๊ฒฐํ•ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด๊ฒƒ์€ request body์˜ ์ž๋™ ํŒŒ์‹ฑ์„ ํฌํ•จํ•œ๋‹ค

  • Spring WebFlux

    • query parameter๋งŒ์„ ๋งคํ•‘ํ•œ๋‹ค

    • query parameter, form data, multipart 3๊ฐœ์˜ ํƒ€์ž…์„ ๋‹ค๋ฃจ๋ ค๋ฉด ModelAttribute ๋กœ annotate ๋œ ๋ช…๋ น ๊ฐ์ฒด (command object)์— data binding์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋”ฐ

  • ์•Œ์•„๋‘๊ธฐ

    • method parameter type์ด Map์ด๊ณ  request parameter ์ด๋ฆ„์ด ์ง€์ •๋œ ๊ฒฝ์šฐ, ์ ์ ˆํ•œ ๋ณ€ํ™˜ ์ „๋žต์ด ์žˆ์„ ๋•Œ request parameter ๊ฐ’์ด Map์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค

    • ๋งŒ์•ฝ method parameter๊ฐ€ Map<String, String> or MultiValueMap<String, String> ์ด๊ณ  parameter ์ด๋ฆ„์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, map parameter๋Š” ๋ชจ๋“  request parameter ์ด๋ฆ„๊ณผ ๊ฐ’์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค

@RequestParam ์˜ ์†์„ฑ

  • name

    • ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค

  • required

    • ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํ•„์ˆ˜์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•œ๋‹ค

    • ๊ธฐ๋ณธ๊ฐ’์€ true

    • ๋งŒ์•ฝ required=true ์ด๊ณ  ํ•ด๋‹น parameter๊ฐ€ ์š”์ฒญ์— ์—†๋Š” ๊ฒฝ์šฐ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

  • defaultValue

    • ์š”์ฒญ parameter๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ์‚ฌ์šฉํ•  ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค

  • value

    • name() ์˜ alias

Last updated