
@RequestParam: HTTP ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ธ๋ฉํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์ ๋ฌํ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๊ฐ์ ธ์ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ์ ํ ๋นํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฒญ ํ๋ผ๋ฏธํฐ์ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ด ๋์ผํด์ผ ํ์ง๋ง, @RequestParam์ ์ฌ์ฉํ์ฌ ์์ฒญ ํ๋ผ๋ฏธํฐ ์ด๋ฆ๊ณผ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ ๋ช
์์ ์ผ๋ก ๋งคํํ ์ ์์ต๋๋ค.
method1():@RequestMapping("sub1")
public void method1() {
System.out.println("method1");
}
method1()์ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ๋ฐ์ง ์๊ณ , ๋จ์ํ @RequestMapping ์ด๋
ธํ
์ด์
๋ง ์ฌ์ฉํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฉ์๋์
๋๋ค. ๋ฐ๋ผ์ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์ง ์์ผ๋ฏ๋ก @RequestParam์ ์๋ตํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
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๋ก ์ถ๋ ฅ๋ฉ๋๋ค.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)์ ์๋ตํ์ฌ ํ๋ผ๋ฏธํฐ๋ง ์์ฑํด๋ ๋ฉ๋๋ค.
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์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.