| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- servlet
- Interface
- GIT
- 스프링프레임워크
- annotation
- IoCContainer
- 객체지향
- 객체지향프로그래밍
- xml
- Spring
- Java
- 아이텀2
- git커스텀
- springframework
- 깃허브
- 스프링
- di
- macoracle
- github
- 자바
- 프레임워크
- iterm2
- 설정파일분리
- viewResolver
- oracle
- 인터페이스
- 깃커스텀
- URLmapping
- Sts
- 깃
- Today
- Total
공부만이 살길
컨트롤러를 이용한 출력 방법 4가지 알아보기 ViewResolver, Tiles, @ResponseBody, Servlet 객체 활용 본문
컨트롤러를 이용한 출력 방법 4가지 알아보기 ViewResolver, Tiles, @ResponseBody, Servlet 객체 활용
공부만이 살길이야 2024. 2. 29. 15:50
URL mapping을 통해 문서나, 문자열을 출력하는 방법은 여러가지가 있다.
1. ResourceViewResolver
2. TilesViewResolver
3. @ResponseBody
4. Servlet 객체 빌려오기
하나씩 알아보도록 하자.
1. ResourceViewResolver

이러한 homeController의 URL mapping 중, index에 해당하는 RequestMapping 을 담는 메소드가 있다고 하자.
return 타입은 String이고, return 값은 "index"를 반환하고 있다.
이러한 형식을 정상적으로 작동하게 하기 위해서는 Spring MVC 모델을 바탕으로,
prefix와 suffix가 구현되어있는 ResourceViewResolver를 활용해야한다.
이는 servlet-context.xml 파일 내에서 구현되어 있다.

일반적으로 많이 사용되는 구조로
컨트롤러가 index를 반환할 때 URL 요청의 앞 뒤에 prefix, suffix의 value가 붙어
클라이언트에게 return된다.
따라서 반환되는 경로는 /WEB-INF/view/index.jsp가 반환되어
실제 경로의 index.jsp 파일의 결과가 나타나게 된다.
2. TilesViewResolver
페이지의 공통 분모를 집중화시키는 Tiles 기능은, 코드의 중복을 막고
유지보수의 용이성을 더욱 극대화 해준다는 장점이 있다.
컨트롤러를 통한 URL mapping에서도 return을 Tiles로서 지정할 수 있다.

현재 Tiles.xml의 구현 코드이다.
definition name="root.*" 으로 root로 시작되는 URL 요청에 대하여 지정된 레이아웃과, 그 value들이 정해져 있다.

해당 코드는 servlet-context.xml의 tiles 관련 설정이다.
이제 URL mapping 에서의 코드를 어떻게 return 시키는지 알아보도록하자.

return 값의 해당 URL 앞에 root. 를 붙히면된다.
정확히는 tiles.xml에서 지정한 definition name을 작성해주면 된다.
3. @ResponseBody Annotation code
지금까지 return을 통해 URL mapping을 시도했을 때, 다른 page를 연결시켜 보여주게 되었었다.
그러나 @ResponseBody는 조금 다르다.
return 되는 값을 그 자체로서 페이지에 표시해주는 역할을 한다.

@ResponseBody 태그를 Url mapping 메소드에 작성하고

확인하면, 이런식으로 해당 return 값이 page의 요청이 아닌 값 그 자체로 return 되는것을 볼 수 있다.
Controller 자체를 ResponseBody의 역할을 하게끔 하는 RestController도 있지만, 이는 다음에 따로 알아보도록 하자.
+한글로 출력하기를 원하는 경우에는, context-serlvet.xml 에 annotation-drvien 설정 코드를 추가해야한다.

4. Servlet 객체 활용
servlet이 지닌 HttpServletResponse 를 이용하여 출력을 해보도록하자.
PrintWriter out에 response가 지닌 getWriter()를 활용하여
페이지에 hello index를 출력해본다.

실행해보면

이런식으로 직접 출력이 가능하다.
'Spring framework' 카테고리의 다른 글
| Annotation을 활용하여 URL mapping 하기 (0) | 2024.02.29 |
|---|---|
| Dispatcher-servlet.xml에 대해서 알아보기 [5] - 스프링 설정파일 분리 (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [4] - DataSource를 활용한 DB 연결정보 분리 (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [3] - Tiles 지시서를 통한 공통분모 집중화 (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [2] - ViewResolver (0) | 2024.02.22 |