본문 바로가기

웹 개발(OLD)/Spring Framework(OLD)

Spring Form데이터 컨트롤러에서 처리

1. form에 action지정해주지 않았을 때 처리 되는 경로

아래 코드를 보면 form 태그에 따로 action을 지정해주지 않았다.
form에 action을 따로 지정해주지 않으면 현재 경로를 그대로 action의 대상 경로로 잡는다. 

즉, 해당 form 에 데이터를 입력한 후 sumbit 버튼을 누르면 해당 jsp파일의 경로인 board/create의 경로에 method로 지정한 post방식으로 호출되므로 이 URI에 매핑되는 컨트롤러에서 form 데이터를 받아서 처리할 것이다.

 


2. 스프링MVC 컨트롤러에서, 
요청으로 들어온 폼 데이터를 자동으로 해당 VO객체에 바인딩시키는 방법.

해당 URI에 매핑되는 컨트롤러의 메소드가 아래와 같다.
즉, 파라미터로 BoardVO 타입의 객체를 선언함으로써 스프링 MVC가 자동으로 Request로 들어온 form 데이터를 
바인딩시켜준다.
이때 바인딩 시켜주는 기준이 무엇인가하면
스프링MVC가 파라미터를 통해 VO객체를 선언함으로써 자동으로 파라미터를 수집할 때 폼 데이터의 경우 input태그나 textarea태그의 name속성과, 선언된 VO클래스의 멤버변수 이름 같아야 바인딩 시켜준다. 
따라서 form 태그를 작성할 때 name 속성을 줘도 되고 안줘도 되는게 아니라 바인딩하고자하는 VO클래스의 멤버변수와 
똑같은 이름으로 속성을 부여해야만 한다. 


즉 현재, BoardVO 클래스가 이렇게 설계돼었기 때문에, form 데이터 내에 있는 input또는 textarea태그의 name속성에 해당 멤버변수와 똑같게 값을 주면된다. 

이런식으로 name 속성을 해당 VO클래스의 멤버변수 이름과 똑같이 해주어야한다.