Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- I'm fine thank you
- 6학년 8반 1분단
- 데이터베이스
- 인덱스
- 러블리즈
- 기타
- 천공의 시간
- 핑거스타일
- 말 더듬
- 레이디스코드
- 장범준
- DBMS 구성요소
- oracle
- SQL 처리
- DBMS
- 스위트라떼
- 개발자
- 슬픔의 후에
- db
- 오라클 아키텍처
- index
- nginx
- 신입
- Inside Of Me
- 오라클
- 아이유
- 악보
- 니가 참 좋아
- 봄 사랑 벚꽃 말고
- IT
Archives
취미로 음악을 하는 개발자
[Spring Boot] Form 본문
728x90
프로젝트 생성
코드 구현
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.study.springboot; public class Member { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } | cs |
위의 Member 클래스와 같은 형태를 파라미터와 관련해서 말할 때는 커맨드 객체,
데이터 테이블과 관련해서 말할 때는 DTO(Data Transfer Object)라고 함.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | package com.study.springboot; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MyController { @RequestMapping("/") public @ResponseBody String root() throws Exception{ return "Form 데이터 전달받아 사용하기"; } @RequestMapping("/test1") public String test1(HttpServletRequest httpServletRequest, Model model) { String id = httpServletRequest.getParameter("id"); String name = httpServletRequest.getParameter("name"); model.addAttribute("id", id); model.addAttribute("name", name); return "test1"; } @RequestMapping("/test2") public String test2(@RequestParam("id") String id, @RequestParam("name") String name, Model model) { // 파라미터가 많아지면 불편해진다. model.addAttribute("id", id); model.addAttribute("name", name); return "test2"; } @RequestMapping("/test3") public String test3(Member member, Model model) { // 파라미터와 일치하는 빈을 만들어서 사용할 수 있다. // View 페이지에서 model을 사용하지 않고 member을 사용 return "test3"; } // 패스 자체에 변수를 넣어 줄 수도 있다. @RequestMapping("/test4/{studentId}/{name}") public String getStudent(@PathVariable String studentId, @PathVariable String name, Model model) { model.addAttribute("studentId", studentId); model.addAttribute("name", studentId); return "test4"; } } | cs |
test1로 요청이 오면 httpServletRequest를 통해 얻은 id와 name 값을 받아 model의 속성으로 넣어주고 test1.jsp를 호출
호출할 때 아래와 같은 형식으로 입력을 해준다. test2, test3도 똑같다.
/test1?id=아이디&name=이름
test2으로 요청이 오면 RequestParam 어노테이션을 이용하는데
@RequestParam("id") String id
이것은 @RequestParam 파라미터에 들어온 값(id)을 test2 메소드의 파라미터(id)에 넣어준다. 이후의 과정은 test1과 같다.
test3으로 요청이 오면 커맨드 객체를 이용해서 값을 받는데, test3.jsp를 보면 아래와 같은 부분이 있다.
당신의 아이디는 ${member.id }입니다. <br>
당신의 이름은 ${member.name } 입니다.
여기서 커맨드 객체를 이용해서 바로 값을 호출할 수 있게 된다.
@RequestMapping("/test4/{studentId}/{name}")
마지막으로 패스 자체에 변수를 넣을 수 있는데 위와 같은 경로로 요청이 들어오면 각각이 getStudent의 매개변수로 들어간다.
@PathVariable String studentId, @PathVariable String name
따라서 위의 경로의 studentId가 매개변수 studentId로, name이 매개변수 name값으로 들어가게 된다.
// test1.jsp test2.jsp test4.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% out.println("#01: Hello World"); %> <br> 당신의 아이디는 ${id }입니다.<br> 당신의 이름은 ${name } 입니다. </body> </html> | cs |
// test3.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% out.println("#03: Hello World"); %> <br> 당신의 아이디는 ${member.id }입니다. <br> 당신의 이름은 ${member.name } 입니다. </body> </html> | cs |
'공대인 > Spring[Boot]' 카테고리의 다른 글
[Spring Boot] 데이터 검증, Validator (0) | 2019.08.02 |
---|---|
[String Boot] lombok (0) | 2019.08.02 |
[Spring Boot] Model 객체 (1) | 2019.07.31 |
[Spring Boot] 정적 리소스 (0) | 2019.07.31 |
[Spring Boot] 의존 주입 방법 (0) | 2019.07.29 |
Comments