만약 타입이 다른 값이 들어오면 HTTP 400 - Bad Request 가 전달 된다
@RequestMapping("/board/{id}")
public void view( @PathVariable("id") int id ) {...}
파일의 경우는 <input type=”file” name=”file” /> 에 매핑 된다
public String edit( @RequestParam("id") int id,
@RequestParam("title") String title,
@RequestParam("file") MultipartFile file ) {...}
맵 형태로 받으면 모든 파라미터 이름은 맵의 키에 파라미터 값은 맵의 값에 담긴다
public String add( @RequestParam Map<String, String> params ) {...}
파라미터가 필수가 아니라면 required = false 로 지정하면 된다. 이때 파라미터가 없으면 NULL이 들어간다. default 값을 지정 할 수도 있다
public void view( @RequestParam(value = "id",
required = false,
defaultValue = "0" ) int id) {..}
@RequestParam과 동일 하며 쿠키값을 가져올 때 사용한다
public String check( @CookieValue("check") String check,
required = false, defaultValue = "" ) {...}
Ajax로 처리할때 $.ajax(…) 에서 head에 특정 값을 넣고 여기서 받아서 있으면 ajax이고 없으면 일반페이지라는 식으로 이용하면 된다
public String header( @RrequestHeader("ajax") String ajax ) {...}
자동으로 ModelMap에 담기므로 modelMap.addAttribute를 해 줄 필요가 없다
public void update( @ModelAttribute("board") Board board) {...}
메소드에도 @ModelAttribute를 설정 할 수 있다. 리턴값이 항상 나머지 컨트롤러에 자동 추가 되며 보통 참조용 데이터 등에 이용된다
@ModelAttribute("emailList")
public Map<String, String> getEmailList() { ... }
BindingResult나 Errors의 파라미터 값의 위치는 반드시 @ModelAttribute 뒤에 위치해야 한다. 자신의 바로 앞에 있는 @ModelAttribute 파라미터의 검정 작업만 하기 때문이다
@RequestMapping(value = "/board/add", method = RequestMethod.POST)
public String add( @ModelAttribute("board") Board board, BindingResult result ) {...}
프로퍼티중 eng.url 의 값을 String engUrl에 매핑 시키고 메소드에서 사용한 케이스이다
public class BoardController {
@Value("${eng.url}")
String engUrl;
@RequestMapping(..)
public String gotoEng() {
return this.engUrl;
}
}
파라미터에도 적용 된다
public String gotoEng( @Value("${eng.url}") String engUrl ) {
return engUrl;
}
JSR - 303 검증기를 이용해서 @ModelAttribute를 검정하도록 한다
public String add( @Valid @ModelAttribute("board") Board board, BindingResult result ) { ...}