7.3.2 폼 파라미터의 커스텀 데이터 바인딩
setAllowedFields() 메서드에서 매개변수의 기본값은 폼 페이지의 모든 파라미터이지만, 폼 페이지에서 원하지 않는 파라미터가 할당되는 것을 방지하려면 데이터 바인딩을 허용하는 폼 파라미터를 설정합니다. 반대에 해당하는 메서드는 setDisallowedFields()입니다.
public void setAllowedFields("폼 파라미터 이름1", ...)
public void setDisallowedFields("폼 파라미터 이름1", ...)
다음은 setAllowedFields() 메서드를 사용하여 폼 페이지에서 전달된 파라미터에 대해 데이터 바인딩을 허용하는 예입니다.
앞의 예제에서 폼 페이지의 hobby 파라미터를 제외한 모든 파라미터를 바인딩하겠습니다.
데이터 바인딩을 허용하는 setAllowedFields() 메서드 적용
package com.springmvc.chap07;
...
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
...
@Controller
public class Example04Controller {
@GetMapping("/exam04")
public String showFrom(Model model) {
model.addAttribute("member", new Member());
return "webpage07_01";
}
@PostMapping("/exam04")
public String submit(@ModelAttribute Member member, Model model) {
model.addAttribute("member", member);
return "webpage07_02";
}
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setAllowedFields("id", "password", "city", "sex" ); → hobby 항목이 없음
}
}