SPRING
2018.07.30 / 10:28

½ºÇÁ¸µ ÄÁÆ®·Ñ·¯¿Í ÆĶó¹ÌÅÍ : 1. ÄÁÆ®·Ñ·¯¿¡¼­ ÆĶó¹ÌÅ͸¦ ¹Þ´Â ¹æ¹ý

summerman
Ãßõ ¼ö 195
½ºÇÁ¸µ ÄÁÆ®·Ñ·¯¿Í ÆĶó¹ÌÅÍ ½Ã¸®Áî
1. ÄÁÆ®·Ñ·¯¿¡¼­ ÆĶó¹ÌÅ͸¦ ¹Þ´Â ¹æ¹ý
- https://gs.saro.me/#!m=elec&jn=878
2. ÆĶó¹ÌÅÍ ¹ë¸®µ¥À̼Ç
- https://gs.saro.me/#!m=elec&jn=879



¼­·Ð
¼­ºí¸´À» »ç¿ëÇÏ´Ù ½ºÇÁ¸µÀ¸·Î ³Ñ¾î°¡°Ô µÇ¸é ¼­ºí¸´ÀÇ °üÇà´ë·Î ÆĶó¹ÌÅ͸¦ ¹Þ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.
±×·¡¼­ À̹ø °­ÀÇ¿¡¼­´Â ¿©·¯°¡Áö ÆĶó¹ÌÅ͸¦ ¹Þ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.



¼­ºí¸´°ú °°ÀÌ Request¸¦ ÅëÇØ ÆĶó¹ÌÅ͸¦ °¡Á®¿À´Â ¹æ¹ý
  1. @RestController
  2. class TempController
  3. {
  4. @GetMapping("/temp")
  5. String temp(HttpServletRequest request)
  6. {
  7. String a = request.getParameter("a");
  8. String b = request.getParameter("b");
  9. System.out.println("a : " + a);
  10. System.out.println("b : " + b);
  11.  
  12. return "none";
  13. }
  14. }
Äְܼá°ú : /temp?a=1&b=2
a : 1
b : 2

Request ¿¡¼­ºÎÅÍ °¡Á®¿À´Â°Ô ³Ê¹« °ÅâÇÏ°í ÁöÀúºÐÇØ º¸ÀÔ´Ï´Ù.



ÆĶó¹ÌÅ͸¦ MapÀ¸·Î °¡Á®¿À´Â ¹æ¹ý
Request ºÎÅÍ °¡Á®¿À´Â °ÍÀÌ ³Ê¹« °ÅâÇϱ⠶§¹®¿¡ Map¿¡¼­ ºÎÅÍ °¡Á®¿Í º¸µµ·ÏÇÏ°Ú½À´Ï´Ù.
  1. @RestController
  2. class TempController
  3. {
  4. @GetMapping("/temp")
  5. String temp(@RequestParam Map<String, String> param)
  6. {
  7. String a = param.get("a");
  8. String b = param.get("b");
  9.  
  10. System.out.println("a : " + a);
  11. System.out.println("b : " + b);
  12.  
  13. return "none";
  14. }
  15. }
Äְܼá°ú : /temp?a=1&b=2
a : 1
b : 2

Request ¿¡¼­ºÎÅÍ °¡Á®¿ÀÁö ¾ÊÀ» »Ó ¶È°°ÀÌ ÁöÀúºÐÇÕ´Ï´Ù.



@RequestParam¸¦ ÅëÇÑ Á÷Á¢ ¸ÅĪÇÏ´Â ¹æ¹ý
  1. @RestController
  2. class TempController
  3. {
  4. @GetMapping( "/temp")
  5. String temp(@RequestParam("a") String a, @RequestParam("b") int b)
  6. {
  7. System.out.println("a : " + a);
  8. // Integer.parseInt() °úÁ¤ÀÌ ÇÊ¿ä¾ø´Ù!
  9. System.out.println("b : " + b);
  10.  
  11. return "none";
  12. }
  13. }
Äְܼá°ú : /temp?a=1&b=2
a : 1
b : 2

Çüº¯È¯ ±îÁö µÇ±â ¶§¹®¿¡ Á¦¹ý ±ò²ûÇØ º¸ÀÔ´Ï´Ù.



¸ðµ¨ Ŭ·¡½º¸¦ ÅëÇÑ Á÷Á¢ ¸ÅĪ
@Data @ToString @Getter @Setter °¡ ³¸¼³´Ù¸é
- ·Òº¹ : https://gs.saro.me/#!m=pd&pn=70
  1. @RestController
  2. class TempController
  3. {
  4. @GetMapping("/temp")
  5. String temp(Abc abc)
  6. {
  7. System.out.println("a : " + abc.getA());
  8. System.out.println("b : " + abc.getB());
  9. return "none";
  10. }
  11.  
  12. @Data @ToString @Getter @Setter
  13. static public class Abc
  14. {
  15. String a;
  16. int b;
  17. }
  18. }
Äְܼá°ú : /temp?a=1&b=2
a : 1
b : 2

¹Þ´Â ÀÚ·á°¡ ¸¹¾ÆÁú ¶§ À¯¿ëÇÕ´Ï´Ù.
¶ÇÇÑ ¸ðµ¨ Ŭ·¡½º·Î ¹ÞÀ» ¶§¿¡´Â ÀÚµ¿À¸·Î ¸ðµ¨ Attribute ·Î Ãß°¡µË´Ï´Ù.
  1. // ÀϹÝÀûÀÎ ÆĶó¹ÌÅÍ·Î ¹ÞÀ» ¶§ÀÇ ¿¹Á¦ - ´ç¿¬È÷ ¸ðµ¨¿¡ Ãß°¡µÇÁö ¾Ê´Â´Ù.
  2. @GetMapping("/temp")
  3. String temp(@RequestParam("a") String a, @RequestParam("b") int b, Model model)
  4. {
  5. System.out.println("¸ðµ¨ ½ºÄµ - ½ÃÀÛ");
  6. Map<String, Object> map = model.asMap();
  7. for (String key : map.keySet())
  8. {
  9. System.out.println(key + " : " + map.get(key).toString());
  10. }
  11. System.out.println("¸ðµ¨ ½ºÄµ - Á¾·á");
  12. return "none";
  13. }
Äְܼá°ú : /temp?a=1&b=2
¸ðµ¨ ½ºÄµ - ½ÃÀÛ
¸ðµ¨ ½ºÄµ - Á¾·á
  1. // ÇÏÁö¸¸ ¸ðµ¨ Ŭ·¡½º·Î ¹Þ¾Ò´Ù¸é!
  2. @GetMapping("/temp")
  3. String temp(Abc abc, Model model)
  4. {
  5. System.out.println("¸ðµ¨ ½ºÄµ - ½ÃÀÛ");
  6. Map<String, Object> map = model.asMap();
  7. for (String key : map.keySet())
  8. {
  9. System.out.println(key + " : " + map.get(key).toString());
  10. }
  11. System.out.println("¸ðµ¨ ½ºÄµ - Á¾·á");
  12. return "none";
  13. }
Äְܼá°ú : /temp?a=1&b=2
¸ðµ¨ ½ºÄµ - ½ÃÀÛ
abc : TempController.Abc(a=1, b=2)
org.springframework.validation.BindingResult.abc : org.springframework.validation.BeanPropertyBindingResult: 0 errors
¸ðµ¨ ½ºÄµ - Á¾·á

@ModelAttribute ¾î³ëÅ×À̼ÇÀ» ÅëÇÑ ¸ðµ¨¿¡ ÀúÀåµÇ´Â Attribute Key°ªÀ» Á÷Á¢ ¼³Á¤ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù.
  1. @GetMapping("/temp")
  2. String temp(@ModelAttribute("changeAttrName") Abc abc, Model model)
  3. {
  4. System.out.println("¸ðµ¨ ½ºÄµ - ½ÃÀÛ");
  5. Map<String, Object> map = model.asMap();
  6. for (String key : map.keySet())
  7. {
  8. System.out.println(key + " : " + map.get(key).toString());
  9. }
  10. System.out.println("¸ðµ¨ ½ºÄµ - Á¾·á");
  11. return "none";
  12. }
Äְܼá°ú : /temp?a=1&b=2
¸ðµ¨ ½ºÄµ - ½ÃÀÛ
changeAttrName : TempController.Abc(a=1, b=2)
org.springframework.validation.BindingResult.changeAttrName : org.springframework.validation.BeanPropertyBindingResult: 0 errors
¸ðµ¨ ½ºÄµ - Á¾·á

Attribute Key °¡ abc°¡ ¾Æ´Ñ changeAttrName ·Î ¹Ù²î¾úÀ½ÀÌ È®ÀεǾú½À´Ï´Ù.



PathVariable
À§¿¡¼­ ¼³¸íÇÑ °ÍµéÀº ÆĶó¹ÌÅ͸¦ ¾î¶»°Ô ¹Þ¾Æ¼­ ó¸®ÇÏ³Ä ¿´Áö¸¸ PathVariableÀÇ °æ¿ì´Â
path¿¡¼­ ¾î¶² ±ÔÄ¢À¸·Î ÆĶó¹ÌÅ͸¦ °¡Á®¿Ã±î¿¡ ´ëÇÑ ±ÔÄ¢À̶ó°í º¸½Ã¸é µË´Ï´Ù.
  1. @RestController
  2. class TempController
  3. {
  4. @GetMapping("/temp/{a}/{b}")
  5. String temp(@PathVariable("a") String a, @PathVariable("b") int b)
  6. {
  7. System.out.println(a);
  8. System.out.println(b);
  9. return "none";
  10. }
  11. }
Äְܼá°ú : /temp/1/2
a : 1
b : 2

¹°·Ð ¸ðµ¨ Ŭ·¡½º¿¡ ´ëÀÔÇÒ ¼ö µµ ÀÖ½À´Ï´Ù.
  1. @RestController
  2. class TempController
  3. {
  4. @GetMapping("/temp/{a}/{b}")
  5. String temp(Abc abc)
  6. {
  7. System.out.println(abc.getA());
  8. System.out.println(abc.getB());
  9. return "none";
  10. }
  11.  
  12. @Data
  13. @ToString @Getter @Setter
  14. static class Abc {
  15. String a;
  16. int b;
  17. }
  18. }
Äְܼá°ú : /temp/1/2
a : 1
b : 2