1. Struts2構成アイテムの詳細
1.1。外部xmlファイルをインポートする
struts.xmlファイルで<include>タグを使用し、file属性に外部.xmlファイルをインポートします。
別のアクションはexample.xml設定で分離されており、パッケージは通常異なります。詳細は次のとおりです。
これの目的は、struts.xmlであまりにも多くのアクションと乱雑なパッケージを分割することです。
1.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 > <!- パッケージ:パッケージ、パッケージの役割はモジュラー管理用です; 名前:構成全体(他を含む)でのパッケージ名(記述および一意である必要があります)を表しますxml)名前は一意です; 名前空間:パッケージレベルの パス、外部アクセスパスを表します:http:// IPアドレス<:ポート> / <コンテキストパス> / <コンテキストパス> /名前空間/アクション名 extends(継承):親から継承しますパッケージ。この親パッケージの名前はstruts-default abstract と呼ばれます。これは、現在のパッケージが抽象パッケージであることを意味します(他の人に継承させるために使用されます。struts-default.xml- > < パッケージ名= "defaultにそのようなパッケージがあります」名前空間= "/ extra"extends = "struts-default" > < action name = "index" class = "cn.yif.action.UserAction" method = "execute" > < result name = "success" type = "dispatcher" > /success.jsp < / 結果> </ アクション> </ パッケージ> </ struts >
具体的なアクセス要求は次のとおりです。
注:
① 同じパッケージでのアクション名は繰り返すことができず、異なるパッケージでのアクションは繰り返すことができます。
② パッケージの名前を繰り返すことはできません。
③ パッケージの名前空間を繰り返すことはできません。
1.3。パッケージの検索プロセス
struts.xml構成に対応して、アクセスパスは主に次のようにpackageNameSpaceとactionNameにあります。http://例としてlocalhost / system / abc / hello access、ここではURLを2つの部分に分割します。
packageNameSpace:/ system / abc、actionName:/ hello。
ここでは、最初に、packageNameSpaceを介して構成ファイル内の対応する<package>タグを検索します。見つからない場合、パスは/システムの1レベル下に移動します。見つかった場合、対応する<action>はパッケージ内で見つかります対応する<action>が見つかったかどうかに関係なく、再度検索されることはありません。
最後に「/」を見つけます。ここにもパッケージがあります。つまり、ルートパッケージは引き続きルートパッケージを検索します。
注:上記のプロセスで、対応する<action>がすべてのパッケージで見つからない場合、デフォルトのパッケージ<package namespace = "">;で見つかります。
クエリプロセスの分析を以下に示します。
今、ブラウザ上の私のパスは:/ path1 / path2 / path3 / hello
これを2つの部分として考える必要があります。
パッケージパスパーツ:/ path1 / path2 / path3
アクション部分:こんにちは
検索するときは、まずパスを見つけます。
/ path1 / path2 / path3それが見つからない場合は、/ path1 / path2が見つかります
/ path1 / path2は/ path1を見つけます
/ path1は、見つからない場合にルートパッケージを検索します/
注:パスパーツが見つからない場合は、上のパスに移動します。見つかった場合は、再検索は行われません。パスが見つかった後にアクションを見つけます。アクションは直接使用されます。アクション(default.xmlファイル内)。
namespace = "/":ルートパッケージを表します。
namespace = "":デフォルトのパッケージを表します。
1.4。Struts2構成ファイルの優先順位
Struts2フレームワークは、次の順序でstruts2構成の
default.properties をロードします。このファイルは、org.apache.struts2パッケージのstruts2-core-2.3.7.jarに保存されます
。構成内の多くの定数は、
struts-default.xml 内にあります。このファイルは、
学習の段階でstruts2-core-2.3.7.jarにアクセスすると、多くの構成メソッドを表示できます。struts
-plugin.xmlこのファイルは、struts-Xxx-2.3.7.jarに保存されてい
ます。いくつかのプラグインの上に3つの構成ファイルがあります。Struts2のデフォルトの構成ファイルです。struts.xmlは変更できません。
このファイルは、Webアプリケーションのデフォルトのstruts構成ファイルです
struts.propertiesこのファイルは、Strutsのデフォルトの構成ファイルです(通常、ここには記述しません)
web.xmlファイルはWebアプリケーションの構成ファイルです(通常は使用されません)
複数のファイルが同じstruts2定数で構成されている場合、後者のファイルで構成された定数値は、前のファイルで構成された定数値を上書きします。
上記の3つのjarパッケージは変更できません。後者の3つは自分で変更できます。
設定ファイルの優先度:優先度は上から下に増加し、優先度が高いほど優先度は低くなります。
1.5。Struts2定数構成
定数の設定はdefault.propertiesにあります。
Struts2.xmlファイルで一般的に使用される定数構成:
<!- 開発モード;サーバーを再起動せずに構成ファイルを変更します- > <!- struts.xmlを参照しますが、他の構成ファイルの変更を再起動する必要があります- > <!- 構成ファイルを自動的に再読み込みしません間違いなく成功します。-> <!- struts.devMode = true; -> < 定数名= "struts.devMode" 値= "true" /> <!- システムはエンコーディングを使用します- > < 定数名= "struts.i18n .encoding " value =" UTF-8 " /> <!- アップロードファイルのサイズ(バイト)-> < 定数名=" struts.multipart.maxSize " value =" 2097152 " -> < 定数名= "struts.action.extension" 値= "action、do ,," />
1.6。Struts2のデフォルト設定
①<action>のデフォルトクラスは、struts-defaultパッケージの<default-class-ref class = "com.opensymphony.xwork2.ActionSupport" />から継承され、構成はデフォルトでは実際には書き込まれません。
②<action>のメソッドのデフォルト設定は実行です。
③<result>タグ内の名前のデフォルト設定は成功です。
④<result>タグのtypeのデフォルト設定はdispatherです。
< パッケージ名= "default" 名前空間= "/" extends = "struts-default" > <!- どの構成がデフォルト構成であり、書き込むことができませんか? メソッドを書き込めない、デフォルトは実行 クラスを書き込めない、デフォルトは検索する(これは自分で変更できる) <default-class-ref class = "com.opensymphony.xwork2.ActionSupport" / > 名前を記述せずにstruts-defaultで検索できますか?この必要な 結果のデフォルト構成はどの構成ですか、書き込めませんか? 名前:書き込み不可、デフォルトは成功 タイプ:書き込み不可、デフォルトタイプはディスパッチャー(変更も可能)-> < アクション名= "const" > < 結果> /success.jsp </ 結果> > </ パッケージ>