스프링 프레임워크 7장: 요청 파라미터 취득하기
1. 요청 파라미터 (request parameter)
- 정의: 서버에 전송되는 값
- 종류:
- request query string으로 보내지는 값 (GET)
- request body에 저장되어 보내지는 값 (POST)
- 뷰에서 클릭한 버튼의 name 속성값
- URL경로의 일부로 보내지는 값
- 취득방법:
- @RequestParam
- Form 클래스
2. 입력값을 받는 프로그램 만들기 (@RequestParam)
- 프로젝트 생성 (Dependencies: Spring Boot Dev Tools, Lombok, Thymeleaf, Spring Web)
- 컨트롤러 & 뷰 생성
- 컨트롤러에 @GetMapping(”show”) & return “entry” (entry 는 뷰 이름)
- 뷰 entry.html 생성,
- th:action=”@{/confirm}” (=/confirm URL로 보냄)
- type=”number” name=”age” min=”1” max=”100” (=type을 number로 지정, number만 입력가능, 등)
- 컨트롤러에 추가
- @PostMapping(”confirm”)
- @RequestParam
- .addAttribute()
- 뷰 생성 (확인화면); confirm.html 생성, [[{$}]]
- 사용: 입력 데이터 및 표시 데이터를 하나의 클래스로 취급하는 경우 (POJO)
- Form 클래스 생성 (새 패키지 만들고 그 안에 넣음)
- @Data로 Lombok 기능 사용
- @DateTimeFormat으로 ‘iso = DateTimeFormat.ISO.DATE 지정해 날짜 형식을 yyyy-MM-dd로 지정
- 컨트롤러 수정 및 추가
- @RequestParam 주석처리 (이제 Form 쓸것임)
- public String confirmView (Form f) { return “confirm2”;}
- 뷰 생성 (확인 화면: Form 클래스 사용)
- confirm2에 대응하는 confirm.html 생성
- form 이용해 객체명.필드명 형식으로 저장된 데이터를 참조
4. URL에 포함된 값을 받는 프로그램 만들기
- 프로젝트 생성
- 컨트롤러[@GetMapping(”show”)] 와 뷰[show.html, th:href=”{/function/1}”] 생성
- 컨트롤러에 추가 (링크 처리) switch 문으로 뷰 이름 확정
- 뷰 생성 (기능 화면) 각자 대응하게 만듦 src/main/resources → templates 새로 만들기 → 경로 → ‘pathvariable’; (function1.html, function2.html etc.)
- 브라우저 열어 확인
- 컨트롤러에 추가 (버튼 판별 처리) @PostMapping(value=”send”, params=”a”), return submit/a;
- 뷰 생성 (버튼 클릭 확인 화면) src/main/resources → templates 새로 만들기 → 경로 → ‘submit’
- 확인 (링크)