일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 오토와이어드
- spring
- git #gitlab #github
- Component
- autowired
- 스프링 부트
- zepettoworld.com
- 1
- 스프링
- layout #thymeleaf #화면분할
- DispatcherServlet
- Bean
- Today
- Total
기록과 정리
Form을 이용한 POST 데이터 전송 본문
개발하면서 헷갈렸던 부분이 있어 정리를 해본다.
폼을은 클라이언트에서 서버로 정보 (데이터) 를 제공해주는 방법이다.
예시)
- 게시글 작성 후, 서버로 데이터를 전송할 때
- 로그인시 , ID&Password를 서버로 전송할 때
전송해주는 방법은 크게 2가지로 나눌 수 있다.
1. Form에서 직접 action url 을 지정해줌으로써 서버로 전달.
2. ajax를 이용하여 서버로 전달
Form으로 직접 서버로 전달할 경우 , 'application/x-www-form-urlencoded' 으로 자동 설정된다.
form enctype 옵션 값으로 데이터 전달 타입을 변경할 수 있으나 한정적이며 application/json type이 없다.
이럴 경우 2번의 방법(ajax)으로 서버로 전달을 하는 방법을 사용한다. 그러면 dataType으로 원하는 데이터 전달타입을 기입하여 설정할 수 있다.
만약 json 타입의 데이터를 서버로 전송할 경우, 전송받는 컨트롤러에서 @RequestBody 어노테이션으로 받아야한다.
1번의 방법으로 Form 전송시, 클라이언트 단에서 서버로 전송시, input type의 name을 Entity 에서 선언한 변수명과 동일하게 서버로 전송해주도록 한다.
ps) SpringJPA를 사용한다면 Formmater가 자동으로 지원이 되기 때문에 서버사이드에서 매핑을 해주나, 단순히 SpringMvc라면 Formatter를 만들어주어야한다. 위 그림처럼 Board처럼 객체를 받을 경우 SpringJpa를 사용하도록 하자.
정정) @ModelAttribute 어노테이션을 사용하면 복합객체 Board와 같은 Entity 를 View로 부터 받아올 수 있다. 또한 @ReqeustParm과 마찬가지로 @ModelAttribute도 생략가능하다. 그런데 명시적으로 써주는 방법이 덜 헷갈릴것 같다.
'IT > FrontEnd' 카테고리의 다른 글
Thymeleaf Layout 설정 - thymeleaf-layout-dialect ( + 공통 css/js 관리 ) (2) | 2021.01.21 |
---|