struts.xml

Posted by 단순대왕 Struts2 : 2014. 12. 11. 15:56

2. struts.xml

struts.xml 파일은 struts2 프레임워크에서 웹 어플리케이션 내의 처리 흐름을 결정하는 설정 파일.

<struts></struts> 요소 하위에 include, package, constant, bean 등의 요소를 가질 수 있다.

 

2.1. <struts> -  <include> 요소

원하는 설정 부분을 별도의 파일로 독립시키고 원하는 파일만 선택적으로 통합하여 관리할 수 있게 하는 요소.

struts.xml 설정 파일에 필요한 요소들을 서로 다른 파일에 분리해서 작성한 후, 이를 통합하도록 하는 기능

 

2.2. <struts> -  <package> 요소

    액션, 리절트, 인터셉터에 대한 설정을 패키지 단위로 묶는 작업을 한다.

    name, extends, namespace, abstract 속성을 가진다.

    <result-types/>, <interceptors/>, <default-interceptor-ref/>, <default-action-ref/>, <global-result/>,

    <global-exception-mappings/>, <action/> 요소를 포함할 수 있다.

 

    - <package name=””> 속성     

- <package extends=””> 속성

      다른 패키지를 상속할 때 사용한다. 상속받을 패키지의 이름을 extends 속성 값으로 지정한다.

      상속받게 되면 부모 패키지의 모든 설정을 물려받고 동일한 설정이 존재하면 오버라이드한다.

- <package namespace=””> 속성

      요청 URL의 액션 이름을 찾기 위해 사용한다. 요청 URL의 중간 경로로 생각하면 되는데, 액션 앞에

      접두어로 사용된다.

      ) http://localhost/ch3      /tutorial     /HelloWorld.action

                        [컨텍스트][네임스페이스][액션]

      <package name=”” namespace=”tutorial” extends=”struts-default”></package>

     

      namespace는 사용자가 직접 지정하는 사용자 정의 네임스페이스 외에도 디폴트 네임스페이스와

      루트 네임스페이스가 있다.

      <package> 요소에 namespace 속성을 생략하면 디폴트 네임스페이스이다.

      네임스페이스가 존재하지 않으면 default package에 지정한 액션을 실행한다.

      요청 URL이 컨텍스트패스 바로 뒤에 액션 URL형태로 입력하면 루트 네임스페이스를 찾는다.

      루트 네임스페이스는 namespace 속성에 “/”을 지정한다. <package… namespace=”/” …></package>    

- <package abstract=””> 속성

      패키지를 추상 패키지로 만들고자 할 때에는 abstract 속성 값을 true로 지정한다.

      추상 패키지는 액션이 없는 패키지이다.

      추상 패키지의 예로는 struts-default.xml struts-default 패키지가 있다.

 

2.2.1. <package> -  <action/> 요소

      - URL과 액션 클래스를 매핑한다.

      - 액션 수행 전, 후로 실행할 인터셉터를 설정한다.

      - 액션 수행 결과에 따른 <result>를 설정한다.

      - 액션 수행 시 예외가 발생할 경우 예외에 따른 <result>를 설정한다.

      - name 속성

        URL 요청 시 마지막 ‘/’ action을 제외한 부분에 기술할 액션 이름.

      - method 속성

        <action name=”TestWorld” class=”TestWorld” method=”test”>

        TestWorld 액션은 인스턴스화 되자마자 method 속성 값으로 기술한 test() 메소드를 호출한다.

        속성값을 지정하지 않으면 execute()를 기본 액션 메소드로 호출한다.

      속성

        <action name=”TestWorld” class=”TestWorld” method=”test”>

2.2.2. <package> -  <default-action-ref/> 요소

      사용자가 요청한 액션이 존재하지 않을 경우 500에러가 발생하는데 <default-action-ref/>요소로

      500 에러를 방지할 수 있다.

      모든 패키지는 자신이 디폴트 액션을 가질 수 있고, 하나의 네임스페이스는 하나의 디폴트 액션을

      가질 수 있다.

      )

      <package name=”tutorial” namespace=”/” extends=”sturts-default”>

        <default-action-ref name=”DefaultAction”/>

        <action name=””><result name=””></result></action>

      </package>

 

2.3. <struts> - <constant> 요소

    사용자가 필요한 프레임워크의 기능을 적합하게 변경하기 위해서 다양한 상수 형태의 프로퍼티를 갖는다.

    상수 정의 예) <constant>

    <struts>

      <constant name=”strtus.devMode” value=”true” />

    </struts>

    상수 정의 예) web.xml

    <filter>

      <init-param>

        <param-name>struts.devMode</param-name>

        <param-value>true</param-value>

      </init-param>

    </filter>

    상수 정의 예) sturts.properties

    struts.devMode = true

   

    스트럿츠는 default.properties 이름의 디폴트 프로퍼티 설정 파일을 제공한다.

    struts.properties 파일에 default.properties 값을 오버라이드하여 사용할 수 있다.

    

'Struts2' 카테고리의 다른 글

리절트 개요와 종류  (0) 2014.12.11
스트럿츠2 아키텍쳐  (0) 2014.12.11
도메인 오브젝트  (0) 2014.12.11
Action  (0) 2014.12.11
web.xml  (0) 2014.12.11
  
 «이전 1 ··· 10 11 12 13 14 15 16 ··· 77  다음»