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 |