스프링 MVC Reqeust Param
RequestParam
- 스프링이 제공하는 @RequestParam 을 사용하면 요청 파라미터를 매우 편리하게 사용할 수 있다.
- String , int , Integer 등의 단순 타입이면 @RequestParam 도 생략 가능 (단, 변수명은 일치해야함)
/**
* @RequestParam 사용
* String, int 등의 단순 타입이면 @RequestParam 도 생략 가능 */
@ResponseBody
@RequestMapping("/request-param-v4")
public String requestParamV4(String username, int age) {
log.info("username={}, age={}", username, age);
return "ok";
}
Model, ModelAndView 차이점
- Model 객체를 파라미터로 받아서 데이터를 뷰로 넘길 수 있다.
- model.addAttribute(“변수이름”, “변수에 넣을 데이터 값”)
- model.addAttribute를 이용해서, 넘길 데이터의 이름과 값을 넣는다.
- 해당 URL로 접근 시 화면에 model에 등록해둔 addAttribute 값이 표시된다.
@RequestMapping("/board/view")
public String view(Model model) {
// 데이터만 설정이 가능
model.addAttribute("id", "test");
return "board/view";
}
- ModelAndView를 쓸 때는 mv.setViewName(“뷰의 경로”); 로 뷰의 경로를 기입하고
- 데이터를 보낼 때는 mv.addObject(“변수 이름”, “데이터 값”); 를 사용한다.
@RequestMapping("/board/content")
public ModelAndView content() {
// 데이터와 뷰를 동시에 설정이 가능
ModelAndView mv = new ModelAndView(); mv.setViewName("/board/content"); // 뷰의 이름
mv.addObject("data", "12341234"); // 뷰로 보낼 데이터 값
return mv;
}
attribute 와 parameter 차이
- parameter는 브라우저(client)에서 만들어진 정보이고, attribute는 servlet(server)에서 만들어진 정보이다.
출처
- Model, ModelAndView 에서는 이 글을 참고했습니다.