본문 바로가기

Programming/SpringFrameWork

[펌]Spring Framework 따라하기 [4] - 프로세스 결과 보여주기

Spring Framework 따라하기 [4] - 프로세스 결과 보여주기
기본적인 Hello Application이 성공했다면, 이제 여기에 살을 붙여보자. 먼저 프로세스를 수행하고 그 결과를 View로 보여주는 부분이다.

두 가지 작업을 한다. 첫째는 http://localhost:8080/springbloom 이라는 경로만으로 http://localhost:8080/springbloom/app/home.htm 으로 자동으로 redirect되도록 처리하는 것이고, 둘째는 이 home.htm 페이지에 현재 일시를 보여주는 것이다.

Redirection

index.jsp 파일의 코드를 다음과 같이 바꾼다:

<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
<c:redirect url="app/home.htm" />

그리고 /WebContent/lib에 jakarta-taglibs의 standard.jar 파일을 넣는다.

이제 실행하여 http://localhost:8080/springbloom을 요청했을때, /app/home.htm페이지가 나오면, 첫째 작업은 완료된 것이다.

Process 결과 보여주기

프로세스의 수행은 Controller 클래스에서 처리한다. Controller 클래스의 코드를 다음과 같이 변경한다 :

before :
return new ModelAndView("home");

after :
 java.util.Date now = new java.util.Date();
 java.util.Map model = new java.util.HashMap();
 model.put("now", now);
 return new ModelAndView("home", model);

이 4줄을 분석해보자:
첫째 줄은 now를 구하는 프로세스이다.
둘째 줄은 Map 객체를 생성한다. 이것은 View로 자료를 전송하기 위한 객체이다. 꼭 Map객체가 아니어도 되지만 이것이 편리하다. 각각의 경우에 따라 객체를 바꾸기 보다는 그냥 무조건 Map객체를 이용하여 View 모듈로 데이터를 전달한다고 생각하는 것이 편리하다.
셋째 줄은 Map 객체에 프로세스 데이터인 now를 올리는 과정이다.
넷째 줄은 Map 객체를 View로 전달하는 과정이다.

전달된 model의 데이터를 View에서 보여주는 방법은 다음과 같다:

home.jsp의 첫 부분에 다음 코드를 삽입한다.

<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>


그리고 body에 다음 코드를 삽입한다:

 현재 일시는 <fmt:formatDate value="${now}" /> 입니다.

fmt TAG는 taglib에 선언되어 있다. 앞의 HomeController 클래스에서 model Map객체에 now를 넣었는데...
이를 여기서 이렇게 받아올 수 있다.
 
이제 다시 http://localhost:8080/springbloom을 호출해보자. 일시 정보가 올바르게 나타나면 성공이다.