환영인사(Welcome)를 struts의 Action으로 설정하기
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를 이용하세요~
댓글 없음:
댓글 쓰기