Struts2-構成ファイル
この章では、に必要な基本構成について説明します。 Struts 2応用。ここでは、次のようないくつかの重要な構成ファイルを使用して構成できるものを確認します。web.xml, struts.xml, strutsconfig.xml そして struts.properties
正直言って、使うだけで働き始めることができます web.xml そして struts.xml構成ファイル(前の章で、これら2つのファイルを使用して例が機能したことをすでに確認しました)。ただし、ご存知のとおり、他のファイルについても説明します。
web.xmlファイル
web.xml構成ファイルは、HTTP要求の要素がサーブレットコンテナによってどのように処理されるかを決定するJ2EE構成ファイルです。これは厳密にはStruts2構成ファイルではありませんが、Struts2が機能するために構成する必要があるファイルです。
前に説明したように、このファイルは任意のWebアプリケーションのエントリポイントを提供します。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>
Struts2フィルターをにマップすることに注意してください /*、ではなく /*.actionこれは、すべてのURLがstrutsフィルターによって解析されることを意味します。これについては、注釈の章を通過するときに説明します。
Struts.xmlファイル
ザ・ struts.xmlファイルには、アクションの開発時に変更する構成情報が含まれています。このファイルは、アプリケーションのデフォルト設定を上書きするために使用できます。たとえば、struts.devMode = falseやプロパティファイルで定義されているその他の設定です。このファイルはフォルダの下に作成できますWEB-INF/classes。
前の章で説明したHelloWorldの例で作成した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の3つのドメインがある場合、3つのパッケージを作成し、関連するアクションを適切なパッケージに保存できます。
パッケージタグには次の属性があります-
シニア番号 | 属性と説明 |
---|---|
1 | name (required) パッケージの一意の識別子 |
2 | extends このパッケージはどのパッケージから拡張されますか?デフォルトでは、基本パッケージとしてstruts-defaultを使用します。 |
3 | abstract trueとマークされている場合、パッケージはエンドユーザーが使用できません。 |
4 | namespace アクションの一意の名前空間 |
ザ・ constant タグと名前および値の属性を使用して、で定義されている次のプロパティのいずれかをオーバーライドする必要があります。 default.properties、設定したように struts.devModeプロパティ。設定struts.devMode プロパティを使用すると、ログファイルでより多くのデバッグメッセージを確認できます。
定義する action タグはアクセスしたいすべてのURLに対応し、対応するURLにアクセスするたびにアクセスされるexecute()メソッドを使用してクラスを定義します。
結果は、アクションの実行後にブラウザに返されるものを決定します。アクションから返される文字列は、結果の名前である必要があります。結果は、上記のようにアクションごとに、または「グローバル」結果として構成され、パッケージ内のすべてのアクションで使用できます。結果にはオプションがありますname そして type属性。デフォルトの名前の値は「success」です。
Struts.xmlファイルは時間の経過とともに大きくなる可能性があるため、パッケージごとに分割することは、モジュール化する1つの方法ですが、 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構成ファイルは、Webクライアントのビューコンポーネントとモデルコンポーネント間のリンクですが、プロジェクトの99.99%でこれらの設定に触れる必要はありません。
設定ファイルには基本的に次の主要な要素が含まれています-
シニア番号 | インターセプターと説明 |
---|---|
1 | struts-config これは、構成ファイルのルートノードです。 |
2 | form-beans ここで、ActionFormサブクラスを名前にマップします。この名前は、strutsconfig.xmlファイルの残りの部分全体、さらにはJSPページでもActionFormのエイリアスとして使用します。 |
3 | global forwards このセクションでは、Webアプリのページを名前にマップします。この名前を使用して、実際のページを参照できます。これにより、Webページでの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.propertiesこれはstruts2-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。