1.2 Struts2の概要: Struts2のウェブ層は、MVCデザインパターンに基づいて、フレームである。 1.2.1 一般的なWeb層フレームワーク Struts1、Struts2の、WebWorkの、SpringMVCの サーブレット上の等価物は本質的にストラットMVCデザインパターン、Struts2のコントローラとして(コントローラ)データインタラクションモデルとビューを確立する。 構造大きな差.Struts2システムアーキテクチャとその新しいStruts2ののStruts1をコアとしてWebWorkの、ユーザの要求を処理するインターセプタ機構に基づいており、それはStruts2のように理解することができます 。WebWorkの更新された製品 フレーム層がWeb機能を有している:フロント・コントロール・モデルは、異なるウェブ層を達成するための技術的なフロント・コントローラ・モデルの枠組みを以下同じではない.. Struts2の:フィルタ SPRINGMVCと、サーブレット 導入ジャーパッケージ 1.asm- 3.3 の.jar:バイトコード操作 2.asm・コモンズ-3.3 の.jar:イベントベースのフォームを提供する 3.asmツリー-3.3 の.jar:オブジェクトベースのフォーム 4.commons-ファイルアップロード-1.2.2 .jar:ファイルアップロードコンポーネント、2.10.6バージョンは、このjarパッケージを(このjarファイルに異常が報告されますないjarファイルをインポートするには、RequestContextのクラスのパッケージが含まれている)に参加しなければならない 5.commons-IO-2.0.1 の.jar:Commonsプロジェクト(一般のjavaの数で使用されているCommonsプロジェクトサブIOの共通の構成要素)は、処理が異常である。 6.commons-lang3-3.1 の.jar:一般的に使用されるクラスと言語処理方法 7.freemarker-2.3.19 UIテンプレートStruts2のタグを使用してFreeMarkerの:の.jar準備 8.javassist-3.11.0 .GA.jar:単純なJavaバイトコードの作成 9.ognl-3.0.5 の.jarを:オブジェクトのプロパティの読み取りおよび書き込みに至る言語オブジェクトナビゲーション 10.strtus2コア-2.3.7を.jar:コアライブラリの開発 11.xworkコア-2.3.7 の.jar:xworkのライブラリ、Struts2のはその上に構築 アクション設定 <Strutsのは> < パッケージ名= "text"の拡張します = = "Strutsのデフォルト"の名前空間"/"> <! - [名前]:パッケージ名は、私たちの小さな意義のために、しかし、全体の名前は独自の役割の略:他の人に継承された 拡張:このパッケージを継承するために、一時的なデフォルト値:struts- デフォルトの 名前空間:名前空間、意志と行動プロパティの名前で構成されるアドレス値 抽象は:このプロパティが設定されている場合、抽象、アクションを持つことができない、唯一継承するために使用することができます - > <アクション名=「こんにちは」クラス =「com.baidu.web.ActiomDemo1」 > <! - 名前:名前空間のアドレス値とアクションで構成され たクラス:の完全修飾名 方法:デフォルトの実行がされて 指定されたページの論理ビューを返すように設定 - > <名前=「AAA」> / JSP / 1を結果。 JSP </結果> </アクション> </ パッケージ > </ストラット> 構成Struts2のコアフィルター(フロントエンドコントローラ) <フィルター> <フィルタ名> Struts2の</フィルタ名> <フィルター- クラス > org.apache.struts2.dispatcher.ng .filter.StrutsPrepareAndExecuteFilter </フィルタ- クラス > </フィルタ> <フィルタマッピング> <フィルタ名> Struts2の</フィルタ名> の<url-pattern> / * </ URLパターン> </のfilter-mapping> Struts2のの実行: 1.1:実行タイミング まず、Tomcatサーバーを起動し、web.xmlの、読んでフィルタラベルをロードし、この時間は、フィルタオブジェクトを作成します。 Struts2のコアフィルター(StrutsPrepareAndExecuteFilter)を負荷のクラスパスの設定の下でstruts.xmlを担当しますファイル。 次に、クライアントはオーバー要求を送信し、フロントコントローラ(コアフィルターStrutsPrepareAndExceuteFilter)を通過し、 フロントコントローラは、要求の名前に応じてstruts.xmlに対応する設定を見つけるだろう、私たちは、クラスアクションのオブジェクト(各訪問を作成新しいアクションオブジェクトを作成する時期) 、その後、指定したメソッドを実行し、ブラウザにページジャンプ最終的な応答のメソッドの戻り値に応じて、結果の構成を見つける。 <! -オープン開発者モードを- > <名前=定数" struts.devMode「値=」真の「> </>一定の かどうか開発モデル。開発モデル:再起動せずに設定ファイルを変更します。出力エラー情報。開発フェーズの提案はtrueです。 1.2.4 Struts2のプロファイルが用意 1.2.4.1 Struts2のコンフィギュレーション・ファイルのロード順序 init_DefaultPropertiesを(); [1] ---ステップ荷重:default.propertiesの init_CustomConfigurationProviders(); [5]第四工程は---いくつかの構成は、顧客を提供するクラスをロードしました init_TraditionalXmlConfigurations(); [2] ---ステップ負荷を:ストラット-default.xmlの、ストラット-plugin.xmlの、 struts.xml init_LegacyStrutsProperties(); [3] ---ステップ読み込ん:struts.propertiesする ; [6] init_FilterInitParameters()----第五工程炉心装荷構成web.xmlのフィルタパラメータ(フィルタの初期化パラメータ-ウェブコントローラの.xml)の前端 init_AliasStandardObjectects(); ---ロード標準オブジェクト第6版[7]。 ローディング配列プロフィール: Strutsのデフォルトのコンフィギュレーションファイル: default.properties(一定値対)---- Struts2の/ org.apache.struts2 -コア2.3.24.jar Struts2のコア- 2.3.24.jarルートにおけるストラット-default.xmlの(大インターセプター)----- struts.plugin.xml(外部プラグ) struts.xmlは(我々が書かれている)/ SRC struts.properties struts.action.extension = BBB のweb.xml 注:以下の設定ファイルは、設定ファイルの以前の内容を上書きします。 1.2.4.2パッケージ構成:パッケージ、より良い行動を管理するために 、<パッケージ>タグを: 名前:パッケージの名前は、同じ名前のパッケージが設定ファイルに表示することはできません。 拡張:彼の袋を継承するために、通常は継承されたデフォルトのStrutsを。 名前空間:名前空間、および<アクション>ラベル名とアクセスパスを決定します。 =「名前空間」:デフォルトの名前空間 の名前空間=「/」:.名前空間と 名前空間=「/ AAA」:。名前空間の名前で 抽象的:抽象、この値は、他のパッケージのために、trueに設定されています連続。 <アクション>タグ: 名:アクセス・パスと名前空間の共同決定。 クラス:アクションは完全なパスを入力する 方法,:そのメソッドでのアクションの実行、デフォルト値が実行される。 定数はStruts2のには、次の3つの場所で変更することができます: Strutsの.xmlファイル(推奨) Strutsの。プロパティ <! -構成定数- > <定数名= "struts.action.extension"値= "ABC" /> キー値= web.xmlの <フィルタ> <フィルタ名> Struts2の</フィルタ名> <フィルタクラス> org.apache.struts2。 dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </フィルタ> <INIT-PARAM> の<param-name>のstruts.action.extension </ PARAM名> の<param-value>はXYZ </ PARAM値> </ INIT-PARAM> </フィルタ> 1.2.4.4含ま構成:他のプロファイルが含ま <! -一部の構成モジュールの開発を- > <ファイルが含ま= "COM /百度/ストラット/ DEMO1 / struts_demo1.xml"> </ include>の 1.2.5.1を書き込みルールのアクションのStruts2の Actionクラスは、次の3つの方法で記述することができます 書かれたアクションの方法を:Actionクラスは、クラスPOJOある アクションアクション・インターフェース・クラスが実装することができ クラスStruts2Demo2実装アクション{公共 @Override / ** * Actionインタフェースは、定数名にの5つの論理ビューを提供します: * * SUCCESS:成功 * * NONE:ジャンプしない ログインユーザページジャンプに失敗しました:* * LOGINオン * * INPUT:フォームのエラーの下で、ページがジャンプし 、エラーページ:* *エラー * / パブリック)(実行文字列スロー例外を{ System.out.printlnは(「実行するStruts2Demo2の道を...」); 戻らないNONEを; } ActionクラスはActionSupportクラス継承できる パブリック クラスを Struts2Demo3 延びActionSupport { @Override パブリック文字列(実行)スロー例外{ のSystem.out.println( "方法を実行Struts2Demo3 ..." ); 返さないNONEを; } } アクションアクセスモード方式: 三種類の デフォルトの方法の実施形態(こちら) アクションを設定 < パッケージ名=「Demo3は」拡張=名前空間= "/"> "デフォルトではストラット" <アクション名= "findCustomer" クラスを= "com.baidu.struts2.demo3.CustomerAction"メソッド= "見つける" /> <アクション名= "saveCustomer" クラス = "comの。 baidu.struts2.demo3.CustomerAction」メソッド= "保存" /> <アクション名= "updateCustomer" クラス = "com.baidu.struts2.demo3.CustomerAction"メソッド= "更新" /> <アクション名= "deleteCustomer" クラス = "com.baidu.struts2.demo3.CustomerAction"メソッド= "削除" /> </ パッケージ > 、 2 ワイルドカードモード(マスター) の設定アクション <!-設定接触アクション- > <アクション名= "linkMan_ *" クラス= "com.baidu.struts2.demo3.LinkManAction" METHOD = "{} 1。" /> 3。動的プロセス(理解) :これは動的構成方法を有効に一定の必要 <! -メソッド有効動的方法を- > < > </定数>「真の」名=定数「struts.enable.DynamicMethodInvocation」値= !動的なユーザーモードの操作方法- - <> < パッケージ名=「TEST5」拡張 =「Strutsのデフォルト」名前空間= " / "> <アクション名="ユーザー" クラス =" cn.baidu.web.ActionDemo4「> </アクション> </ パッケージ >