struts 2 의 namespace 설정

Struts 2 의 0 설정 기능 은 매우 많은 xml 설정 을 감소 시 켰 다.그래서 회사 의 최근 프로젝트 도 사 용 했 습 니 다.namespace 설정 에 대해 말씀 드 리 겠 습 니 다.지금 내 가 달성 하고 자 하 는 목적 은 배경 관리 와 관련 된 action 에 / adm 의 namespace 를 추가 하 는 것 이다.우선 struts 2 의 filter 에 action 의 package 정보     <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class>
        <init-param>
            <param-name>actionPackages</param-name>
            <param-value>com.xxx.yyy.action</param-value>
        </init-param>
    </filter>
를 추가 해 야 합 니 다. 그러면 struts 2 는 com. xxx. yy. action 패키지 아래 에 Action 을 실현 한 모든 종 류 를 찾 습 니 다.하위 패키지 에 있 는 클래스 도 찾 아 볼 거 예요.다음은 '의 내용 을 참조 합 니 다. 설 정 된 모든 패키지 와 하위 패 키 지 는 스 캔 됩 니 다. 그 중에서 어떤 종류의 액 션 이나 클래스 이름 이' 액 션 '으로 끝 났 는 지 보고 주 해 는 실행 시 설정 에 추 가 됩 니 다.namespace 주 해 를 사용 하지 않 으 면 네 임 스페이스 는 package 이름 으로 생 성 됩 니 다."actionPackages" 설정 값 에 사용 되 는 package 이름 을 자 르 면 네 임 스페이스 를 얻 을 수 있 습 니 다.즉, 설 정 된 action 의 이름 이 'actions. admin. user. AddAction' 이 고 'actionPackages' 의 값 이' actions' 라면 이 action 의 네 임 스페이스 는 '/ admin / user' 이다.그래서 namespace 는 packagename 을 통 해 이 루어 질 수 있 습 니 다.하지만 이 namespace 아래 action 은 서로 다른 interceptor stack 을 사용 해 야 합 니 다. 그래서 xml 설정 파일 에 < package > 를 추가 해 야 합 니 다. 이 < package > 노드 를 통 해 namespace 와 interceptor stack 을 설정 해 야 합 니 다.     <package name="Administration" extends="struts-default" namespace="/adm">
       <interceptors>
           <interceptor name="loginInterceptor" class="com.xxx.yyy.interceptor.LoginInterceptor"/>
           <interceptor name="SpringBeanInjectionInterceptor" class="com.xxx.core.struts.SpringBeanInjectionInterceptor"/>
           <interceptor-stack name="Administration">
               <interceptor-ref name="SpringBeanInjectionInterceptor"/>
               <interceptor-ref name="params"/>
               <interceptor-ref name="loginInterceptor"/>
           </interceptor-stack>
       </interceptors>
       <default-interceptor-ref name="Administration"/>
    </package>
이렇게 Action 클래스 에서 어떻게 설정 합 니까?그럼 @ Parent Package 라 는 annotation 을 사 용 했 습 니 다. 이것 은 Action 의 Package 를 지정 할 수 있 습 니 다.@ParentPackage(value = "Administration") 그 중의 value 는 xml 프로필 의 package name 입 니 다.주의해 야 할 것 은 액 션 패키지 의 모든 클래스 에서 @ Parent Package 정 보 를 지정 하면 됩 니 다.모든 Action 을 지정 할 필요 가 없습니다.그 러 니까 이 @ Parent Package 는 사실 Package 를 겨냥 한 거 예요.

좋은 웹페이지 즐겨찾기