
[1] MVC 패턴 원리
(1) 컨트롤러 메서드가 별도로 있는 방법
Controller : modelController를 별도로 설정함
Model : map 으로 사용
View : txtView2.txt 를 사용



Map 생성
main이 map 주소를 가리킨다
컨트롤러를 통해 map에 값을 넣는다
컨트롤러가 map을 가리키고 viewname인 txtView2를 반환하라 한다
view를 읽어서 map에 있는 key , value를 맞춰 출력한다

txtView1.jsp
txtView2.jsp
어떤 뷰 View를 선택하여 결과 형태를 다르게 출력할수 있다.

(2) 정적 값 + Reflection API 이용한 방법
정적으로 입력된 값을 Reflection API를 이용해서 컨트롤러를 직접 생성하고 메서드 호출한다
기존에 만들어놓은 YoilTellerMVC.java 파일을 가지고



그 파일의 정보를 가지고 model map에 담아 view jsp로 출력한다
YoilTellerMVC.java 에서 반환하는 yoil.jsp 파일을 읽어온다

(3) 동적 값 + Reflection API 이용한 방법
값을 동적으로 받아와서 Reflection API를 이용해서 컨트롤러를 직접 생성하고 메서드 호출한다.
클라이언트가 입력한 값을 가져올때 원래는 reguest.getParameterMap()으로 가져와야하지만
예시 작업을 위해 Map을 설정하여 값을 넣었다
그 값들은 변할수가 있으며, 그 값을 동적으로 받아와서 저장하는 배열을 만든다.

받아온 값들은 paramName / paramType 으로 key / value 로 나눠 입력되며
원래 형식은 year , month , day , model 이기 때문에
parameType이 model 일경우 새로운 model을 만들어 넣는다

클라이언트가 입력한 값은 string으로 year, month, day에 입력된 값이
자동으로 int 타입으로 변경되게끔 함수 메서드를 만든다



(4) 원격프로그램으로 만들기
@WebServlet 오류 발생
@WebServlet은 @Controller + @RequestMapping을 합친 애너테이션이며
Servlet 서블릿은 클래스 단위로만 맵핑이 되기때문에 이렇게 사용한다
오류는 maven 설정때문에 발생하였다

해결방법으로
1. 컴파일을 변경하는 방법
2. 톰캣에 라이브러리를 추가하는 방법
이 있으며 2번으로 해결한다.




@WebServlet 정상 작동확인

서블릿해서는 필수로 빨간박스 구간이 들어가야한다

브라우저에서 받은 값을 map에 담고
YoilTellerMVC.java 파일의 객체를 생성한다
map의 key, value 값을 읽어온다

value 값의 경우 key가 똑같은데 다른 값이 여러개 들어올수 있기때문에
타입이 배열로 되어있고 , 타입변환할때 배열을 int로 바꾸는 함수를 적용한다

타입 변환 함수

model을 map으로 변환해서
map의 value 값이 출력되도록 반환한다.


'🌈 백엔드 > 스프링 MVC' 카테고리의 다른 글
| 스프링_Model 속성 추가 @ModelAttribute (0) | 2023.08.23 |
|---|---|
| 스프링_테스트_로깅 Logging (0) | 2023.08.23 |
| 스프링_파라미터 값 가져오기 @RequestParam (0) | 2023.08.23 |
| 스프링_MVC 패턴 기본 구조 (0) | 2023.08.10 |
| 스프링_web.xml 기능 역할 (0) | 2023.07.20 |