샘플 코드 3-1. form 데이터 3-2. RestController 3-3. DTO class
결과
1. Intro
Spring RestController에서 form 데이터를 받았을 때 이 값을 어떻게 DTO 객체로 바인딩을 할 수 있는지 알아보겠습니다.
2. 바인딩 기준
스프링 MVC가 파라미터로 DTO 객체를 선언해서 자동으로 클라이언트로부터 들어온 폼 데이터 요청 파라미터를 수집할 때
input 태그의 name 속성과 선언된 DTO 클래스의 멤버변수 이름이 같아야 바인딩을 시켜줍니다.
따라서 form 태그를 작성할 때 name속성은 필수 속성으로, 바인딩하고자 하는 DTO 클래스의 멤버변수와 똑같은 이름으로 속성을 부여해야 합니다.
3. 샘플 코드
아래 세 가지 컴포넌트에 대한 샘플 코드로 Form 데이터가 어떻게 DTO에 바인딩되는지 알아보겠습니다.
전송하고자 하는 form 데이터
form 데이터 요청을 받는 RestController
form 데이터가 바인딩 되는 DTO Class
3-1. form 데이터
임의로 아래와 같은 html 파일을 작성 후 form 데이터를 보낼 것입니다.
<!DOCTYPE html><html><body><formaction="http://localhost:8081/"method="post"><labelfor="uri">URL 주소 입력</label><inputtype="radio"name="val1"value="true">val1-a</input><inputtype="radio"name="val1"value="true">val1-b</input><inputtype="radio"name="val1"value="true">val1-c</input><inputtype="radio"name="val2"value="true">val2-a</input><inputtype="radio"name="val2"value="true">val2-b</input><inputtype="radio"name="val2"value="true">val2-c</input><inputtype="submit"value="전송" /></form></body></html>
3-2. RestController
클라이언트로부터 들어온 요청을 처리하는 컨트롤러입니다.
파라미터로 DTO 객체를 선언해서 자동으로 클라이언트로부터 들어온 폼 데이터 요청을 받습니다.