<package /> 요소는 액션, 리절트, 인터셉터에 대한 설정을 패키지 단위로 묶는 작업을 합니다.
속성 |
필수.선택 |
설명 |
name |
필수 |
- 패키지를 구분하기 위한 이름을 설정하는 기능. - 필수적으로 입력해야 함. - 개발자가 중복되지 않게 설정해줌으로써 다른 패키지가 이 패키지를 상속할 수 있음. |
extends |
선택 |
- 다른 패키지의 설정을 그대로 상속받고자 할 떄 사용. - 다른 패키지의 name 을 속성값으로 설정. |
namespace |
선택 |
- 액션의 URL 경로를 지정할 때, 컨택스트 패스와 액션 이름 사이 중간 경로 지정. (말로 이해하기 보다 실습하면서 이해하는 것이 좋겠습니다.) |
abstract |
선택 |
- 추상 패키지를 만들기 위한 속성. - 이 속성값을 true 로 하고, 액션 설정 없이 다른 패키지에서 상속하는 용도로 사용. |
(출처 : 스트럿츠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>
패키지 요소 각 기능에 대해 좀 더 세부적으로 알아보도록 할게요.
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">
이렇게 설정해주면 루트 네임스페이스를 찾아가는데요, 루트를 찾지 못했을 경우에는 자동으로 리폴트 네임스페이로 설정됩니다.
abstract
<package /> 요소에서 abstract 속성을 사용하는 이유는 "패키지를 추상 패키지로 만들고자 할 경우입니다.
설정 방법은 abstract="true" 와 같이 사용하면 되는데요.
액션이 없는 패키지는 무조건 abstract="true" 로 설정해주시면 됩니다. 무조건!!
'IT > Struts2' 카테고리의 다른 글
스트럿츠2 한글 에러 발생 처리 (0) | 2013.07.25 |
---|---|
ActionSupport 클래스를 이용한 action (0) | 2013.07.25 |
struts.xml의 action 설정, 에러발생처리 (0) | 2013.07.24 |
스트럿츠2 다운로드 및 기초 웹 어플리케이션 만들기 (2) | 2013.07.23 |
Struts2 웹 애플리케이션 흐름(web.xml 과 struts.xml 의 역할) (0) | 2013.07.22 |