본문 바로가기
IT/Struts2

<package/> 요소 사용법

by Jeami 2013. 7. 24.
반응형




<package /> 요소는 액션, 리절트, 인터셉터에 대한 설정을 패키지 단위로 묶는 작업을 합니다. 


속성

필수.선택 

설명 

name 

필수

 - 패키지를 구분하기 위한 이름을 설정하는 기능.

 - 필수적으로 입력해야 함.

 - 개발자가 중복되지 않게 설정해줌으로써 다른 패키지가 

    이 패키지를 상속할 수 있음. 

 extends

선택 

 - 다른 패키지의 설정을 그대로 상속받고자 할 떄 사용.

 - 다른 패키지의 name 을 속성값으로 설정.

 namespace

선택 

 - 액션의 URL 경로를 지정할 때, 컨택스트 패스와 액션 이름 사이

   중간 경로 지정.

    (말로 이해하기 보다 실습하면서 이해하는 것이 좋겠습니다.) 

 abstract

선택 

 - 추상 패키지를 만들기 위한 속성.

 - 이 속성값을 true 로 하고, 액션 설정 없이 

   다른 패키지에서 상속하는 용도로 사용. 

(출처 : 스트럿츠2 프로그래밍 입문)




이 글이 도움이 되신다면, 로그인 필요없이 추천 한번 부탁드립니다^^

보다 나은 정보로 보답할게요~




스트럿츠2



<사용예>

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">


<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />

    <constant name="struts.devMode" value="true" />


    <package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />


        <global-results>

            <result name="error">/error.jsp</result>

        </global-results>


        <global-exception-mappings>

            <exception-mapping exception="java.lang.Exception" result="error"/>

        </global-exception-mappings>


        <action name="index">

            <result type="redirectAction">

                <param name="actionName">HelloWorld</param>

                <param name="namespace">/example</param>

            </result>

        </action>

    </package>


    <include file="example.xml"/>

    <!-- Add packages here -->

</struts>



스트럿츠2


패키지 요소 각 기능에 대해 좀 더 세부적으로 알아보도록 할게요.


1. 네임스페이스(namespace)

   ==>  http://localhost:8181/day/first/World.action

위의 주소에서 각 부분에 대해 설명드릴게요.

day : contextpass

first : namespace

World.action : 액션

World란 액션을 사용하기 위해 first 라는 네임스페이스를 설정해준 것인데요. 이렇게 사용하기 위해서 struts.xml에 설정해주게 됩니다.(아래와 같이 struts.xml 파일에 추가시켜줍니다.)

<package name="korea" namespace="first" extends="struts-default">

  <action name="World" class="first.World">

  </action>

</package>   



Default namespace

네임스페이스는 개발자가 직접 정의해줄 수도 있고, 디폴트와 루트라는 것을 통해 지정해줄 수도 있습니다.

디폴트는 사용자가 생략할 시 자동으로 설정되는 것인데요. 생략하는 방법과 namespace="" 이렇게 빈 문자열을 삽입하는 방법 2 가지가 있습니다.



Root namespace

==> http://localhost8080:korea/World.action

위의 주소에는 namespace가 생략되어 있습니다. 이럴때는 자동적으로 root namespace를 찾아가게 되는데요.

struts.xml 에서는 다음과 같이 설정해줍니다.

<package name="first" namespace="/" extends="struts-default">

  <action name="World" class="first.World">

이렇게 설정해주면 루트 네임스페이스를 찾아가는데요, 루트를 찾지 못했을 경우에는 자동으로 리폴트 네임스페이로 설정됩니다.



스트럿츠2




abstract 

<package /> 요소에서 abstract 속성을 사용하는 이유는 "패키지를 추상 패키지로 만들고자 할 경우입니다. 

설정 방법은 abstract="true" 와 같이 사용하면 되는데요.

액션이 없는 패키지는 무조건 abstract="true" 로 설정해주시면 됩니다. 무조건!!



반응형

loading