스프링의 정석/Ch. 02 Spring MVC

ch2_10. 관심사의 분리와 MVC패턴 - 실습(1)

2023. 4. 12. 22:15

YoilTeller 복사해서 YoilTellerMVC 만든다. 

 

입력을 분리하면 HttpServletRequest request 매개변수를 String으로 year, month, day 각 각 받게 된다. 따라서 request 메서드인 request.getParmeter를 사용하지 않아도 된다.

 

Spring은 문자를 숫자로 자동 형변환 하므로 매개 변수를 int형으로 바꿔주고, 작업의 parseInt 메서드를 쓰지 않아도 된다.

코드의 수가 줄어든다.

 

이 상태로 실행시키면

 

500 Error가 발생한다. 당황하지 말고 Error 메시지를 읽어보자.

 

"Ambiguous mapping found."은 @Controller에서 @RequestMapping이 잘못되었을 때 발생하는 오류이다. YoilTeller의 mapping이 "/getYoil"이고 실행하려고 하는 YoilTellerMVC의 mapping도 "/getYoil" 이기 때문에 오류가 발생했다. 따라서 YoilTellerMVC의 mapping을 "/getYoilMVC"로 바꿔주자. 

 

출력되는 것을 볼 수 있다.

 

출력도 별도의 JSP 파일로 빼내자.

 

View의 위치는 'src/main/webapp/WEB-INF/views'에 만든다.

 

${year }을 EL(Expression Language)라 한다. 값이 출력될 자리만 만들고, Model 객체를 받으면 이름에 해당하는 값을 꺼내서 응답으로 클라이언트에게 출력된다.

 

YoilTellerMVC에서 출력 코드를 걷어내고 return "yoil" 한 줄을 입력하면 Spring이 자동으로 우리가 만들었던 /WEB-INF/views/yoil.jsp을 실행한다. yoil은 문자열이기 때문에 main 메서드의 반환타입을 void에서 String으로 바꿔야 한다.

 

요일을 계산하는 코드를 메서드로 만들기 위해 해당 코드를 드래그해서 우클릭 -> Refactor -> Extract Method 하면 자동생성한다.

 

getYoil을 문자로 받아야 하기 때문에 위에만 고치고 실행한다.

 

오류는 아닌 듯한데 그렇다고 잘 나온 것 같지도 않다. 인코딩 형식이 맞지 않아서 그렇다.

 

출력은 yoil.jsp로 넘겼으므로 jsp파일 맨 상단에 '<%@ page contentType="text/html;charset=utf-8" %>'을 입력한다.

 

출력이 잘 된다. 인코딩에는 문제가 없다.

 

??? 숫자 어디 감??? jsp 파일은 잘 출력되었으므로 View에는 문제가 없다.

 

Controller에 Model을 만들지 않았다. 따라서 매개변수로 Model 객체를 만들고, addAttribute 메서드를 사용해서 model 객체에 값을 담아준다.

 

잘 출력된다.

'스프링의 정석 > Ch. 02 Spring MVC' 카테고리의 다른 글

11. 관심사의 분리와 MVC패턴 - 원리(1)  (0) 2023.07.06
ch2_10. 관심사의 분리와 MVC패턴 - 실습(2)  (0) 2023.07.05
ch2_09. 관심사의 분리와 MVC패턴 - 이론  (0) 2023.04.12
ch2_08. 텍스트와 바이너리, MIME, Base64  (0) 2023.04.12
ch2_07. HTTP 요청과 응답 - 이론(1)  (0) 2023.04.12
'스프링의 정석/Ch. 02 Spring MVC' 카테고리의 다른 글
  • 11. 관심사의 분리와 MVC패턴 - 원리(1)
  • ch2_10. 관심사의 분리와 MVC패턴 - 실습(2)
  • ch2_09. 관심사의 분리와 MVC패턴 - 이론
  • ch2_08. 텍스트와 바이너리, MIME, Base64
돌맹이떼굴떼굴
돌맹이떼굴떼굴
돌맹이떼굴떼굴
떼굴떼굴개발자
돌맹이떼굴떼굴
전체
오늘
어제
  • 분류 전체보기 (137)
    • C언어 (6)
      • 홍정모 C언어 (6)
    • 자바 (1)
      • 자바의 정석 Ch.7 객체지향 프로그래밍 II (22)
      • 이것이 자바다 (1)
    • 스프링의 정석 (38)
      • Ch. 02 Spring MVC (34)
      • Ch. 03 Spring DI와 AOP (1)
      • spring error (2)
    • JavaScript (7)
    • HTML&CSS (2)
      • 제대로 파는 HTML CSS - by 얄코 (1)
    • React.js, 스프링 부트, AWS로 배우는 .. (12)
    • BACKJOON, 백준 (7)
    • 프로그래머스 (1)
    • Error (10)
      • Java (5)
    • Spring (5)
    • JPA (2)
    • Vue (1)
    • Git (5)
    • Linux (0)
    • HTML (1)
    • DB (3)
    • Web (2)
    • 잡다 (1)
    • 개발 프로젝트 (2)
    • doom (1)
    • 취업 (3)
    • Network (0)
    • 재테크 (2)
    • 일상 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 비전공개발자
  • 향기지속로션
  • 애크논크림
  • 취업연계
  • 갈더마
  • 아로나민골드
  • 비맥스메타
  • kosa혜화
  • 종로5가약국
  • 비맥스가격
  • 비전공
  • 고보습로션
  • KOSA
  • 향기부각로션
  • 비맥스메타정
  • 세타필로션
  • 온유약국
  • 비맥스
  • 보령약국
  • 세타필세라마이드로션

최근 댓글

최근 글

hELLO · Designed By 정상우.
돌맹이떼굴떼굴
ch2_10. 관심사의 분리와 MVC패턴 - 실습(1)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.