2013년 8월 6일 화요일

[오라클자바닷넷커뮤니티, ORACLEJAVA]환영인사(Welcome)를 struts의 Action으로 설정하기 , 스트럿츠 교육

환영인사(Welcome)를 struts의 Action으로 설정하기 


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  




web.xml에서 welcome-file-list는 사용자가 URI의 일부만 입력을 했을 때 기본적으로 보여 줄 자원을 정하기 위해 사용 합니다.

예를들어 다음과 같이 설정 했다면…(Login 이라는 웹 애플리케이션을 만들었다고 가정)

<welcome-file-list>
            <welcome-file>main.jsp</welcome-file>
    </welcome-file-list>

브라우저에서 http://localhost/Login/ 이라고 입력하면 main.jsp 가 로딩 된다는 이야기 입니다. 즉 http://localhost/Login/main.jsp 와 같은 기능을 수행 하는 것 입니다.

몰론 welcome-file-list에 여러 개의 welcome-file을 선언 하는 것 역시 가능 합니다.

이렇게 하면 컨테이너는 사용자가 요청한 URI와 일치하는 환영파일을 찾을 때 까지(기술된 순서대로) 찾는 과정을 반복 합니다.

Welcome-file의 속성 값은 ‘/’로 시작하거나 뒤쪽에 ‘/’이 붙을 수 없으니 주의 하세요~

----------------------------------------------------------
환영 파일 내에서 struts의 Action을 사용 하기
----------------------------------------------------------

컨테이너는 welcome-file-list 요소 내에 서블릿 매핑을 지원하지 않으므로 struts의 Action을 사용하기 위해 welcome-file 요소를 직접 만질 수는 없습니다.

그대신 다음과 같은 방법을 이용하면 가능 합니다.

1.        web.xml에서 welcome-file을 설정 합니다.

<welcome-file-list>
            <welcome-file>welcome.jsp</welcome-file>
    </welcome-file-list>

2.        welcome.jsp를 만듭니다.

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
        <body>
                <logic:forward name="welcome"/>
        </body>
</html>

3.        welcome.jsp에서 사용한 global-forward를 만듭니다.(struts-config.xml)

<global-forwards>
<forward name="welcome" path="welcome.do"/>
    </global-forwards>

4.        global-forward에서 정의 한 Action에 대한 매핑을 합니다.(struts-config.xml)

<action-mappings>                   
        <!-- welcome Action정의 -->
        <action
                path="/welcome"
                type="login2.Welcome"
                validate="false"
        />           
    </action-mappings>

5.        테스트를 위해 간단한 Action 파일을 만듭니다.

package login2;

import org.apache.struts.action.Action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import login2.Constants;

public class Welcome extends Action {       
       
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
                               
                //성공적으로 처리 되었음을 알림, main.jsp로 보내버림...
                //결국 환영인사를 하게 되면 main.jsp가 불리는 것입니다.
                return (mapping.findForward(Constants.SUCCESS));
               
        }
}


결과를 확인 하기 위해 http://localhost/Login/ 이라고 입력 하면 main.jsp가 실행 됩니다. 혹시 main.jsp를 만들지 않으신 분은 이전 강좌에 있는 main.jsp를 이용하세요~

댓글 없음:

댓글 쓰기