더북(TheBook)

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 항목이 없음
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.