クイックストラッツ2イントロ
1前書き
Apache Struts 2
は、エンタープライズJava Webアプリケーションを開発するためのMVCベースのフレームワークです。元のStrutsフレームワークを完全に書き直したものです。オープンソースのAPI実装と豊富な機能セットを持っています。
-
このチュートリアルでは、Struts2フレームワークのさまざまなコアコンポーネントについて初心者向けに紹介します** さらに、それらの使い方についても説明します。
2 Struts 2フレームワークの概要
Struts 2の機能のいくつかは以下のとおりです。
-
POJO(プレーンオールドJavaオブジェクト)ベースのアクション
-
REST、AJAX、Hibernate、Springなどのプラグインサポート
-
設定に関する規約
-
さまざまなビューレイヤテクノロジのサポート
-
プロファイリングとデバッグが簡単
2.1. Struts2
のさまざまなコンポーネント
Struts2はMVCベースのフレームワークなので、次の3つのコンポーネントがすべてのStruts2アプリケーションに存在します。
-
アクションクラス –
POJOクラスです(POJOはの一部ではないことを意味します
任意の型階層で、スタンドアロンクラスとして使用できます。私達はします
ここにビジネスロジックを実装する
。
Controller –
Struts 2では、HTTPフィルタがコントローラとして使用されます。彼ら
インターセプトや検証などのタスクを基本的に実行する
リクエスト/レスポンス
。
View –
は処理したデータを表示するために使用されます。通常はJSPです
ファイル
3アプリケーションの設計
Webアプリの開発を進めましょう。これは、ユーザーが特定の
Car
ブランドを選択し、カスタマイズされたメッセージに迎えられるアプリケーションです。
3.1. Mavenの依存関係
pom.xml
に次のエントリを追加しましょう。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-junit-plugin</artifactId>
<version>2.5.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.5.10</version>
</dependency>
依存関係の最新版はhttps://search.maven.org/classic/#search%7Cga%7C1%7Cg%3A%22org.apache.struts%22[ここ]にあります。
3.2. ビジネスの論理
特定の入力値に対するメッセージを返すアクションクラス
CarAction
を作成しましょう。
CarAction
には2つのフィールドがあります。
public class CarAction {
private String carName;
private String carMessage;
private CarMessageService carMessageService = new CarMessageService();
public String execute() {
this.setCarMessage(this.carMessageService.getMessage(carName));
return "success";
}
//getters and setters
}
CarAction
クラスは
Car
ブランドのカスタマイズされたメッセージを提供する
CarMessageService
を使用します。
public class CarMessageService {
public String getMessage(String carName) {
if (carName.equalsIgnoreCase("ferrari")){
return "Ferrari Fan!";
}
else if (carName.equalsIgnoreCase("bmw")){
return "BMW Fan!";
}
else {
return "please choose ferrari Or bmw";
}
}
}
3.3. ユーザー入力を受け入れる
アプリケーションのエントリポイントである
JSP
を追加しましょう。これは
input.jsp
ファイルの内容です。
<body>
<form method="get" action="/struts2/tutorial/car.action">
<p>Welcome to Baeldung Struts 2 app</p>
<p>Which car do you like !!</p>
<p>Please choose ferrari or bmw</p>
<select name="carName">
<option value="Ferrari" label="ferrari"/>
<option value="BMW" label="bmw"/>
</select>
<input type="submit" value="Enter!"/>
</form>
</body>
<
_form
_
>タグはアクションを指定します(この例では、GETリクエストの送信先となるHTTP URIです)。
3.4. コントローラー部
StrutsPrepareAndExecuteFilter
はすべての着信要求を傍受するコントローラです。 __web.xmlに次のフィルタを登録する必要があります。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/** </url-pattern>
</filter-mapping>
ワイルドカード
<url-pattern>/
</url-pattern> ** に一致するURLを指定しているので、
StrutsPrepareAndExecuteFilter
はすべての着信要求をフィルタリングします。
3.5. アプリケーションの設定
アクションクラス
Car
に次のアノテーションを追加しましょう。
@Namespace("/tutorial")
@Action("/car")
@Result(name = "success", location = "/result.jsp")
この注釈の論理を理解しましょう。
@
__
Namespace
__は、さまざまなアクションクラスの要求URIを論理的に分離するために使用されます。この値をリクエストに含める必要があります。
さらに、
@ Action
は、
Action
クラスにヒットする要求URIの実際のエンドポイントを示します。アクションクラスは
CarMessageService
を調べて、別のメンバ変数
carMessage
の値を初期化します。
execute()
メソッドが値「
“success”
を返した後、
result.jsp
を呼び出すためにその値と一致します
最後に、
@ Result
には2つのパラメータがあります。最初のもの、
name、
は、
Action
クラスが返す値を指定します。この値は、
Action
クラスの
execute()
メソッドから返されます。
これは実行されるデフォルトのメソッド名です
。
2番目の部分
locationは、
execute()
メソッドが値を返した後に参照されるファイルを示します。ここでは、
execute()
が値 ”
success
“を持つStringを返すときに、リクエストを
result.jsp__に転送する必要があることを指定しています。
XML構成ファイルを提供することで、同じ構成を実現できます。
<struts>
<package name="tutorial" extends="struts-default" namespace="/tutorial">
<action name="car" class="com.baeldung.struts.CarAction" method="execute">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
3.6. 景色
これは
result.jsp
の内容で、ユーザーにメッセージを表示するために使用されます。
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<body>
<p> Hello Baeldung User </p>
<p>You are a <s:property value="carMessage"/></p>
</body>
ここで注意することが2つあります。
-
<@ taglib prefix =” s” uri =”/struts-tags%> __インポート中
struts-tags
ライブラリ
**
<s:property value =” carMessage”/>
では
struts-tags
を使用しています
プロパティの値を表示するためのライブラリ
carMessage
4アプリケーションの実行
このWebアプリは、Apache Tomcatなどの任意のWebコンテナで実行できます。これらはそれを達成するために必要な手順です。
-
Webアプリをデプロイしたら、ブラウザを開いて以下にアクセスします.
URL:
http://www.localhost.com:8080/MyStrutsApp/input.jsp
。 2つのオプションのうち1つを選択してリクエストを送信する
-
カスタマイズされたメッセージとともに
result.jsp
ページに転送されます.
選択した入力オプションに基づく
5結論
このチュートリアルでは、最初のStruts2 Webアプリケーションを作成する方法をステップバイステップガイドで説明しました。 Struts2ドメインでのMVC関連のさまざまな側面をカバーし、それらを開発のためにまとめる方法を示しました。
いつものように、このチュートリアルはMavenプロジェクトとしてhttps://github.com/eugenp/tutorials/tree/master/struts-2[over Github]で見つけることができます。