일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 핑거스타일
- 레이디스코드
- 봄 사랑 벚꽃 말고
- I'm fine thank you
- DBMS
- 기타
- db
- SQL 처리
- 오라클
- 장범준
- 신입
- index
- 천공의 시간
- 아이유
- 러블리즈
- IT
- 개발자
- 스위트라떼
- 니가 참 좋아
- nginx
- 악보
- 오라클 아키텍처
- Inside Of Me
- DBMS 구성요소
- oracle
- 슬픔의 후에
- 말 더듬
- 데이터베이스
- 6학년 8반 1분단
- 인덱스
취미로 음악을 하는 개발자
[Spring] Controller 객체 구현 (1) 본문
- 클래스에 RequestMapping 어노테이션 명시를 해주면 그 값은 공통된 데이터로 취급하여 각 메소드에 정의되어 있는 속성에 더해준 요청을 받게 된다.
위의 두 소스는 결국 같은 코드이지만 첫 번째 코드처럼 memJoin의 RequestMapping 값으로 '/member'를 추가할 때 그 개수가 많으면 상당히 시간이 오래걸리게 되므로, 두 번째 코드처럼 클래스에 RequestMapping을 해주면 자동으로 처리하게 된다.
- 아래는 컨트롤러에서 Login 부분을 담당하는 메소드와 login.html의 body부분인 코드이다.
memLogin 메소드는 파라미터 이름이 'memId'와 'memPw'의 값을 받아오는데 login.html를 통해 사용자가 입력한 ID와 PW의 값을 가져오게 된다.
하지만 이것을 어노테이션을 사용하는 방법으로도 바꿀 수 있다.
memLogin 파라미터 안에 @RequestParam이라는 어노테이션을 사용함으로써 메소드 안에 있는 변수를 생략할 수 있게 된다.
'memPw'같은 경우에는 'required'라는 속성을 추가해줬는데 이 파라미터를 받지 못하면 에러를 발생시킬지 말지 결정해준다
false는 데이터를 받지 못해도 에러를 발생하지 않는 것이고 'memId'와 다르게 2개 이상의 속성이 주어질 경우에는 속성 이름과 그 값을 다 적어줘야한다.
다른 속성으로 defaultValue가 있는데 이것은 값이 넘어오지 않을 때 지정된 값으로 치환해준다. 하지만 자바스크립트에서 값이 있는지 확인하고 전달되기 때문에 잘 사용되지 않는다.
// Command 객체
결과를 먼저 보면 위의 코드를 아래 코드로 바꿀 수 있다. 대박쓰..
필드 값들이 각각 setter메소드를 가지고 있는 클래스를 커맨드 객체라고 부르는 것 같다.
커맨드 객체를 사용하는 이유는 먼저 코드의 양이 상당히 줄어들고 View에서도 이 객체의 값을 바로 사용할 수 있다.
위는 기존의 request를 사용했을 때의 코드이고, 아래는 커맨드 객체를 사용했을 때 직접 접근할 수 있는 것을 보여준다.
커맨드 객체를 사용할 수 있는 이유는 스프링 컨테이너 안에서 스프링이 그러한 기능들을 지원하기 때문이다.
'공대인 > Spring[Boot]' 카테고리의 다른 글
Spring Boot 개념 정리 시작 (0) | 2019.07.29 |
---|---|
[Spring] Controller 객체 구현 (2) (0) | 2019.05.28 |
[Spring] Service, Dao 객체 구현 (0) | 2019.05.28 |
[Spring] STS를 쓰지 않은 웹 프로젝트 (0) | 2019.05.27 |
[Spring] 스프링 MVC 웹 서비스 (0) | 2019.05.25 |