2017 - 12 - 16 (토)
RequestParam 애너테이션 활용
- RequestParam 으로 매개변수 명이 보내는 값의 이름과 같을경우 @ReqeustParam(“키값”) 을 @RequestParam 으로 줄여 사용할 수 있다.
@Controller
@RequestMapping("/user")
public class EmployeeController {
@RequestMapping("/authenticate")
public void requestParameter (@RequestParam String test) {
logger.info(test);
}
}
- JSON 형태의 값을 받을 때 : {‘email’ : email} 형태의 JSON 데이터를 /user/authenticate 로 보낸다.
<script>
$(document).on('click','#authenticate',function(){
var email = $('#email').val()
$.ajax({
url:'/user/authenticate',
type:'POST',
data: {'email' : email},
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType : "json",
success:function(data){
});
});
});
</script>
- RequestParam 으로 받기 : @RequestParam(“JSON 의 키 값”) 형태로 받는다.
@RequestMapping(value = "/authenticate" , method = RequestMethod.POST, produces = "application/json; charset=utf-8")
public @ResponseBody String checkDuplicate(HttpServletResponse response, @RequestParam("email") String email, Model model)throws Exception {
system.out.print(email);
return responseMsg;
}
- list 형태의 값을 전달 할 때 : 각각의 input box 에 동일한 name 을 준다.
<form action = "/sclass/register">
<input type = "text" name = "video_path">
<input type = "text" name = "video_path">
<input type = "text" name = "video_path">
<input type = "submit">
</form>
- @RequestParam(“폼 태그 name 속성 값”) 형식으로 사용한다.
@RequestMapping(value = "/getRegist2", method = {RequestMethod.POST}, produces = "text/plain; charset=UTF8")
public String register2(@RequestParam("video_path") List<String> list)throws Exception {
ArrayList<VideoVO> videoArr = new ArrayList<VideoVO>();
for(int i =0; i<list.size(); i ++) {
VideoVO videovo = new VideoVO();
videovo.setVideo_path(list.get(i));
videoArr.add(videovo);
}
request.setAttribute("vidioInfo", videoArr);
return "sclass/register2";
}
- @PathVariable 과 비교 : @PathVariable 애너테이션 사용시 곧장 값을 받을 수 있다. 분류 작업에 효율적으로 사용할 수 있을 거라 생각한다. 또한 하나의 컨트롤러를 유용하게 사용할 수 있다.
@RequestMapping("/user/{cri}")
public void test(@PathVariable String cri){
System.out.println("================");
System.out.println("페이징 번호:"+cri);
System.out.println("================");
}