GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Back to the Spring

@Mapping 사용법 ( @RequestParam / @ModelAttribute / @PathVariable )

Backcoder 2022. 8. 18. 23:14

[ @Controller ] 

@GetMapping("/ url ")
public String A( ) { } 

- Mapping 해주는 메소드의 타입은 기본적으로 String 이다. 
=> return 값으로 호출할 HTML/JSP 파일 이름으로 주기 때문. 
=> ViewResolver 가 자동으로 연결 

 

1. public String( ) { return "A"}
- Model 담는거 없이 그냥 바로 연결

 

2. public String(Model model) { return "A"}
- Model 담아서 가져간다. 

3. public String(String id, int pw) { return "A" } 
- 자동으로 form태그에서 name == 파라미터명 같은거 매칭해서 가져옴 
( url 파라미터 => 메소드 파라미터 ) 

4. public String(@RequestParam("id2") String name ){ return A} 
- 자동으로 이름 같은거로 가져오지 않을 경우 ( 여러개 ) 
<form action=  >
<input name="id"> <input name="id2">  
@RequestParam("파라미터name") 직접 명시해서 가져올 수 있다. 
즉, 
String name =request.getParameter("id2");  와 같은 의미 

 

[ **RequestParam ( )  ] 

 

@RequestParamname = " ",  value = " "  ) int id
- 파라미터에 사용
- URL 에 직접 ?name = value  값을 넣어준다. 
- 이 value 값은 해당 파라미터값으로 들어간다. 

@GetMapping 메소드에서 name 만 설정해두고 사용하면
=> VIEW단 페이지에서 요청할 때 
?name=value  이렇게 요청한 페이지를 받을 수 있다.

 

< 추가설정 > 
- required = false 
: 들어오는 URL 파라미터 없어도 되게끔 설정  

 

defaultValue="1" 
: 기본 초기 value값 설정 

 

( 페이징 / 해당게시글로 이동 등에 기능에서 변수 URL을 받을 때 사용 ) 

( 다른 방법으로 @PathVariable 을 사용할 수 있다. ) 

 

 


5. public String(String id, int pw, Model model) { return "A" } 
- 가져온 url 파라미터 사용하고, 모델에 담아서 가져간다. 


6. public String (@ModelAttribute("form")  Form form ) {return "A";}
- public String (Model model, Form form)  
해서 model.addAttribute( form ) 하는걸 
파라미터에서 바로 @ModelAttribute("form") 담아버리는 것. 
(1) form으로 입력값 받아서 저장해논걸 
(2) 받아오자마자 바로 model 에 담아버린다 
( Model model 칠 때 어짜피 담을거니까 거기서 그냥 담아 ) 


7. public String(@PathVariable Long id, Model model ) { return "A" } 
-   board/{id}  => 변수 URL  id값을 파라미터로 가져오겠다. 


8. public String loging(Form form) { return "A"}
Form 엔티티클래스에 변수명 맞춰진 거있으면
form action 태그로 보낸 value 값들이 자동으로 
form 객체에 들어감 
=> 그 form 객체를 가져다 쓰는 것  


9. public String( Form form ){ return "redirect:/A"
- 처리할거 파라미터로 받아서 처리만 한 후,
( DB에 저장한다든지의 작업 ) 
모델에 딱히 담아서 보낼건 없을 경우, 
( return 으로 jsp에 전달 할게 없으므로 )
그냥 redirect 로 해당 url로 보내버리기만 한다. 


10. public String (HttpServletRequest req ){ return  }
- 서블릿 받아서 request.getParameter 등 사용할 수 있음 

11. public String (HttpSessioin session){ return  }
- 세션받아서 사용할 수 있음 


@getMapping("/A")
12. public void ( ){ }
void 일 경우는, mapping 했던 그 URL ("/A")로 return 한다