본문 바로가기
Framework/Spring Framework

[Spring Framework] @RequestMapping 파라미터

by 사용자 원동호 2018. 7. 25.

@RequestMapping에서 Get방식과 Post방식

 

1) GET방식

test.jsp

//action=" "값은 컨트롤러의 @RequestMapping의 값과 매핑되고 ,GET방식으로 form 데이터를 전송하겠다.
<form action="action" method="get">
	//name의 변수명은 VO와 매핑할 변수로 VO 변수명과 같아야 한다. 
	<input name="id" type="text" /> 
	<input type="submit" value="transfer" />
</form>

HomeController.java

@RequestMapping(value="/action",method=RequestMethod.GET) 
	public String action(@ModelAttribute("member") MemberVO membervo){
		return "action"; 	
	} 

 

출력화면

test.jsp에서 정보를 입력후 submit하게 되면 컨트롤러에서 @RequestMapping("/action")으로 매핑이 되어 

GET방식의 특징인 URL에 데이터를 포함해서 전송하게된다. 

밑에 사진은 action.jsp를 호출 후 데이터(커맨드)객체를 이용하여 JSTL정규식으로 표현한것이다.

HttpServletRequest나, @RequestParam으로 데이터를 받아도 무방하다.

 

2) POST 방식

test.jsp

// action=" "값은 컨트롤러의 @RequestMapping의 값과 매핑되고 ,POST방식으로 form 데이터를 전송하겠다.
<form action="action" method="POST">
	 //name의 변수명은 VO와 매핑할 변수로 VO 변수명과 같아야 한다. 
	<input name="id" type="text" />
	<input name="pw" type="text" />
</form>

HomeController.java

@RequestMapping(value="/action",method=RequestMethod.POST) 	
	public String action(@ModelAttribute("member") MemberVO membervo){ 		
		return "action"; 	
	}

 

출력화면

 

POST방식은 데이터를 헤더에 담아서 전송하기 때문에 데이터가 URL에 표시되지 않는다.

 

 

※컨트롤러 단에서 method=RequestMethod.Get 처럼 GET방식을 사용할것인지, POST방식을 사용할 것인지 지정을 해줘도

되지만 생략해도 무방하다.(생략하게 되면 GET방식 POST방식 모두 이용가능하다. 가독성을 위해서 선언해주자!)

 

하지만!

 

컨트롤러 단에서 GET방식으로 선언했다면, form태그에서도 GET방식으로 전송해야한다!

POST방식으로 전송하면 405에러가 발생한다! 반대의 경우도 마찬가지.

댓글0