ストラット2
Struts2はWebWork2をベースに開発されています。 struts1 と同様に、Struts2 も MVC フレームワークに属します。ただし、誰もが注意する必要があるのは、Struts2 と struts1 の名前の違いはそれほど大きくありませんが、Struts2 と struts1 のコーディング スタイルはほぼ異なるということです。では、struts1 を用意したのに、なぜ struts2 を起動する必要があるのでしょうか。主な理由は、struts2 には次の利点があるためです。
1>ソフトウェア設計の観点から見ると、Struts2 は Struts1 ほど ServletAPI や strutsAPI と緊密に結合されていません。Struts2 アプリケーションは ServletAPI や strutsAPI に依存しません。 Struts2 のこの設計は非侵入型設計ですが、Struts1 は侵入型設計です。
publicclassOrderListActionextendsAction{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestリクエスト、HttpServletResponseレスポンス)
スロー例外{
}
}
2>Struts2 は、AOP プログラミングでアクセス許可のインターセプトなどの機能を実装するために使用できるインターセプターを提供します。
3>Strut2 は型コンバーターを提供しており、特別なリクエスト パラメーターを必要な型に変換できます。 Struts1 で同じ機能を実現したい場合は、Struts1 の基礎となる実装である BeanUtil に型コンバータを登録する必要があります。
4>Struts2 は、JSP、freeMarker、Velocity などのさまざまなプレゼンテーション層テクノロジのサポートを提供します。
5>Struts2の入力検証は指定された方法で検証することができ、Struts1の長年の悩みを解決します。
6>グローバル スコープ、パッケージ スコープ、およびアクション スコープで国際化されたリソース ファイル管理の実装を提供します。
Struts2開発環境をセットアップする
1. Struts2 アプリケーションの開発に必要な jar ファイルを見つけます。
Struts2の開発に必要な最小限のjarファイル
struts-core-2.xxjar: Struts2 フレームワーク コア クラス ライブラリ
xwork-2.xxjar: XWork クラス ライブラリ、Struts2 はその上に構築されます
ognl-2.6.jar: イメージ ナビゲーション言語 (ObjectGraphNavigationLanguage) の場合、Struts2 フレームワークはそれを通じてオブジェクト プロパティの読み取りと書き込みを行います。
freemarker-2.3.x.jar: Struts2 UI ラベル テンプレートは freeMarker を使用して記述されています
commons-logging-1.1.x.jar: ASF によって生成されたログ パッケージ。Struts2 フレームワークは、このログ パッケージを使用して Log4J および JDK1.4+ のログ記録をサポートします。
commons-filteupload-1.2.1.jar ファイル アップロード コンポーネント。ファイルはバージョン 2.1.6 以降に追加する必要があります
2. Struts2設定ファイルを書き込む
Struts2 のデフォルトの構成ファイルは struts.xml であり、このファイルの構成テンプレートは次のとおりです。
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEstrutsPUBLIC".//ApatcheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apatche.org/dtds/struts-2.0.dtd">
<支柱>
</ストラット>
3. Struts2MVC フレームワークの起動設定を Web.xml に追加します。
struts1.x では、Struts フレームワークはサーブレットを通じて開始されます。 struts2 では、Struts フレームワークはフィルターを通じて開始されます。 web.xml での設定は次のとおりです。
<フィルター>
<フィルター名>struts2</フィルター名>
<filter-class>org.apatche.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!--Struts2.1.3 以降、次の FilterDispatcher は廃止済みとしてマークされています。
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>-->
</フィルター>
<フィルター=マッピング>
<フィルター名>struts2</フィルター名>
<url パターン>/*<url パターン>
</フィルターマッピング>
StrutsPerpareAndExecuteFilter の init() メソッドでは、クラスパス内のデフォルト構成ファイル struts.xml が読み取られて、初期化操作が完了します。
Struts.xml 構成のパッケージの概要
<packagename="itcast"namespace="/test"extends="struts-defult">
<actionname="helloworld"class="cn.itcast.action.HelloWorldAction"method="execute">
<resultname="success">/WEB-INF/page/hello.jsp</result>
</アクション>
</パッケージ>
開発に必要な jar ファイルを見つけるには、解凍する必要があります: struts-2.3.8-all.gz
または、struts-2.3.8-apps.gz は、次のように struts-2.3.8-all/struts-2.3.8/apps でファイルを検索します。
空のプロジェクト struts2-blank が提供されており、このプロジェクトで struts2 を開発できます。
開発プロセス中に他の jar ファイルのサポートが必要な場合はどうすればよいですか?
対応する jar ファイルを /struts-2.3.8-all/struts-2.3.8/lib で見つける必要があります。
struts2-blank.war プロジェクトを解凍する方法 - Tomcat の Webapps にコピーし、Tomcat を起動します
apache-tomcat/binでstartup.batを見つけてクリックして開始します
観察する:
ブラウザIEを開くことができます
「http://localhost:8080/struts2-blank」と入力します。
解凍された jar ファイルを見つけます: apache-tomcat/webapps/struts2-blank/WEB-INF/lib
バグ記録:
1. java.net.BindException:Addressalreadyinuse:JVM_Bind
分析: バグは、使用している Tomcat が 2 回目または n 回起動される前にシャットダウンされなかったために発生します。
解決:
起動した Tomcat を閉じるだけです。
HTTPStatus404-/demo/servlet/demo.do
分析: 要求した URL が見つかりません: servlet/demo.do
解決:
URL が存在するかどうかを確認します。存在しない場合は、ビジネスに応じて追加します。
3.
デモという名前のアクションに追加されるアクションマップはありません。
分析: 対応するデモ アクションがサーバー側で見つかりません
デモアクション
/csdn/demo.action
プロンプトのみ: デモが見つかりません
/csdn の下にデモアクションが見つかりません
バグ
Noresultnamedforactioncom.opensymphony.xwork2.ActionSupportandresultsuccess