Struts 2-구성 파일

이 장에서는 작업에 필요한 기본 구성을 안내합니다. Struts 2신청. 여기에서는 다음과 같은 몇 가지 중요한 구성 파일의 도움으로 구성 할 수있는 항목을 볼 수 있습니다.web.xml, struts.xml, strutsconfig.xmlstruts.properties

솔직히 말해서 다음을 사용하여 작업을 시작할 수 있습니다. web.xmlstruts.xml구성 파일 (이 두 파일을 사용하여 예제가 작동했던 이전 장에서 이미 확인했듯이). 그러나 귀하의 지식을 위해 다른 파일에 대해서도 설명합니다.

web.xml 파일

web.xml 구성 파일은 서블릿 컨테이너가 HTTP 요청 요소를 처리하는 방법을 결정하는 J2EE 구성 파일입니다. 엄격하게 Struts2 구성 파일은 아니지만 Struts2가 작동하도록 구성해야하는 파일입니다.

앞에서 설명한 것처럼이 파일은 모든 웹 응용 프로그램에 대한 진입 점을 제공합니다. Struts2 애플리케이션의 진입 점은 배치 설명자 (web.xml)에 정의 된 필터입니다. 따라서 web.xml 에 FilterDispatcher 클래스 항목을 정의합니다 . web.xml 파일은 폴더 아래에 생성되어야합니다.WebContent/WEB-INF.

이 파일을 생성하는 템플릿이나 도구 (예 : Eclipse 또는 Maven2)를 사용하지 않고 시작하는 경우 구성해야하는 첫 번째 구성 파일입니다.

다음은 마지막 예제에서 사용한 web.xml 파일의 내용입니다.

<?xml version = "1.0" Encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns = "http://java.sun.com/xml/ns/javaee" 
   xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee 
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   id = "WebApp_ID" version = "3.0">
   
   <display-name>Struts 2</display-name>
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   
   <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
         org.apache.struts2.dispatcher.FilterDispatcher
      </filter-class>
   </filter>

   <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>

</web-app>

Struts 2 필터를 다음과 같이 매핑합니다. /*,하지 /*.action이는 모든 URL이 struts 필터에 의해 구문 분석된다는 것을 의미합니다. 주석 장을 살펴볼 때이를 다룰 것입니다.

Struts.xml 파일

그만큼 struts.xml파일에는 작업이 개발 될 때 수정할 구성 정보가 포함되어 있습니다. 이 파일은 응용 프로그램에 대한 기본 설정 (예 : struts.devMode = false 및 속성 파일에 정의 된 기타 설정) 을 재정의하는 데 사용할 수 있습니다 . 이 파일은 폴더 아래에 만들 수 있습니다.WEB-INF/classes.

이전 장에서 설명한 Hello World 예제에서 만든 struts.xml 파일을 살펴 보겠습니다.

<?xml version = "1.0" Encoding = "UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
   <constant name = "struts.devMode" value = "true" />
   <package name = "helloworld" extends = "struts-default">
     
      <action name = "hello" 
         class = "com.tutorialspoint.struts2.HelloWorldAction" 
         method = "execute">
         <result name = "success">/HelloWorld.jsp</result>
      </action>
      
      <-- more actions can be listed here -->

   </package>
   <-- more packages can be listed here -->

</struts>

가장 먼저 주목해야 할 것은 DOCTYPE. 모든 Struts 구성 파일은 우리의 작은 예제에 표시된대로 올바른 doctype을 가져야합니다. <struts>는 <package> 태그를 사용하여 다른 패키지를 선언하는 루트 태그 요소입니다. 여기서 <package>는 구성의 분리 및 모듈화를 허용합니다. 이것은 큰 프로젝트가 있고 프로젝트가 다른 모듈로 나뉘어져있을 때 매우 유용합니다.

예를 들어 프로젝트에 business_application, customer_application 및 staff_application이라는 세 개의 도메인이있는 경우 세 개의 패키지를 만들고 적절한 패키지에 관련 작업을 저장할 수 있습니다.

패키지 태그에는 다음과 같은 속성이 있습니다.

Sr. 아니요 속성 및 설명
1

name (required)

패키지의 고유 식별자

2

extends

이 패키지는 어떤 패키지에서 확장됩니까? 기본적으로 struts-default를 기본 패키지로 사용합니다.

abstract

true로 표시되면 최종 사용자가 패키지를 사용할 수 없습니다.

4

namespace

작업에 대한 고유 한 네임 스페이스

그만큼 constant 이름 및 값 속성과 함께 태그를 사용하여에 정의 된 다음 속성을 재정의해야합니다. default.properties, 방금 설정 한 것처럼 struts.devMode특성. 환경struts.devMode 속성을 사용하면 로그 파일에서 더 많은 디버그 메시지를 볼 수 있습니다.

우리는 정의합니다 action 태그는 액세스하려는 모든 URL에 해당하며 해당 URL에 액세스 할 때마다 액세스되는 execute () 메소드로 클래스를 정의합니다.

결과는 작업이 실행 된 후 브라우저에 반환되는 내용을 결정합니다. 작업에서 반환 된 문자열은 결과의 이름이어야합니다. 결과는 위와 같이 작업별로 구성되거나 패키지의 모든 작업에 사용할 수있는 "전역"결과로 구성됩니다. 결과에는 선택 사항이 있습니다.nametype속성. 기본 이름 값은 "success"입니다.

Struts.xml 파일은 시간이 지남에 따라 커질 수 있으므로 패키지별로 분리하는 것이 모듈화 방법 중 하나입니다. Strutsstruts.xml 파일을 모듈화하는 또 다른 방법을 제공합니다. 파일을 여러 xml 파일로 분할하고 다음과 같은 방식으로 가져올 수 있습니다.

<?xml version = "1.0" Encoding = "UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
   <include file="my-struts1.xml"/>
   <include file="my-struts2.xml"/>
</struts>

우리가 다루지 않은 다른 구성 파일은 struts-default.xml입니다. 이 파일에는 Struts에 대한 표준 구성 설정이 포함되어 있으며 프로젝트의 99.99 %에 대해서는이 설정을 건드릴 필요가 없습니다. 따라서이 파일에 대해 너무 자세하게 다루지 않습니다. 관심이 있으시면default.properties struts2-core-2.2.3.jar 파일에서 사용할 수있는 파일입니다.

Struts-config.xml 파일

struts-config.xml 구성 파일은 웹 클라이언트의보기 및 모델 구성 요소 간의 링크이지만 프로젝트의 99.99 %에 대해 이러한 설정을 건드릴 필요가 없습니다.

구성 파일은 기본적으로 다음과 같은 주요 요소를 포함합니다.

Sr. 아니요 인터셉터 및 설명
1

struts-config

구성 파일의 루트 노드입니다.

2

form-beans

여기에서 ActionForm 하위 클래스를 이름에 매핑합니다. 나머지 strutsconfig.xml 파일과 JSP 페이지에서도이 이름을 ActionForm의 별명으로 사용합니다.

global forwards

이 섹션은 웹앱의 페이지를 이름에 매핑합니다. 이 이름을 사용하여 실제 페이지를 참조 할 수 있습니다. 이렇게하면 웹 페이지에서 URL을 하드 코딩하는 것을 방지 할 수 있습니다.

4

action-mappings

여기에서 양식 처리기를 선언하고 작업 매핑이라고도합니다.

5

controller

이 섹션은 Struts 내부를 구성하며 실제 상황에서는 거의 사용되지 않습니다.

6

plug-in

이 섹션은 Struts에게 프롬프트와 오류 메시지가 포함 된 특성 파일을 찾을 위치를 알려줍니다.

다음은 샘플 struts-config.xml 파일입니다.

<?xml version = "1.0" Encoding = "ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
   "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">

<struts-config>

   <!-- ========== Form Bean Definitions ============ -->
   <form-beans>
      <form-bean name = "login" type = "test.struts.LoginForm" />
   </form-beans>

   <!-- ========== Global Forward Definitions ========= -->
   <global-forwards>
   </global-forwards>

   <!-- ========== Action Mapping Definitions ======== -->
   <action-mappings>
      <action
         path = "/login"
         type = "test.struts.LoginAction" >

         <forward name = "valid" path = "/jsp/MainMenu.jsp" />
         <forward name = "invalid" path = "/jsp/LoginView.jsp" />
      </action>
   </action-mappings>

   <!-- ========== Controller Definitions ======== -->
   <controller contentType = "text/html;charset = UTF-8"
      debug = "3" maxFileSize = "1.618M" locale = "true" nocache = "true"/>

</struts-config>

struts-config.xml 파일에 대한 자세한 내용은 struts 문서를 확인하십시오.

Struts.properties 파일

이 구성 파일은 프레임 워크의 기본 동작을 변경하는 메커니즘을 제공합니다. 실제로, 안에 포함 된 모든 속성struts.properties 구성 파일은 web.xml 사용 init-param에서 상수 태그를 사용하여 struts.xml구성 파일. 그러나 사물을 분리하고 좀 더 구체적으로 유지하려면 폴더 아래에이 파일을 만들 수 있습니다.WEB-INF/classes.

이 파일에 구성된 값은에 구성된 기본값을 재정의합니다. default.propertiesstruts2-core-xyzjar 배포판에 포함되어 있습니다. 다음을 사용하여 변경을 고려할 수있는 몇 가지 속성이 있습니다.struts.properties 파일-

### When set to true, Struts will act much more friendly for developers
struts.devMode = true

### Enables reloading of internationalization files
struts.i18n.reload = true

### Enables reloading of XML configuration files
struts.configuration.xml.reload = true

### Sets the port that the server is run on
struts.url.http.port = 8080

여기로 시작하는 모든 줄 hash (#)은 주석으로 간주되며 무시됩니다. Struts 2.