クイックストラッツ2イントロ

クイックストラット2イントロ

 

1. 前書き

Apache Struts 2は、エンタープライズJavaWebアプリケーションを開発するためのMVCベースのフレームワークです。 これは、元のStrutsフレームワークを完全に書き直したものです。 オープンソースAPI実装と豊富な機能セットがあります。

In this tutorial, we will have a beginner’s introduction to different core components of the Struts2 framework.さらに、それらの使用方法を示します。

2. Struts 2フレームワークの概要

Struts 2の機能の一部は次のとおりです。

  • POJO(プレーンな古いJavaオブジェクト)ベースのアクション

  • REST、AJAX、Hibernate、Springなどのプラグインサポート

  • 構成より規約

  • さまざまなビューレイヤー技術のサポート

  • プロファイリングとデバッグの容易さ

2.1. Struts2のさまざまなコンポーネント

Struts2はMVCベースのフレームワークであるため、次の3つのコンポーネントがすべてのStruts2アプリケーションに存在します。

  1. POJOクラスであるAction class –(POJOは、タイプ階層の一部ではなく、スタンドアロンクラスとして使用できることを意味します)。ここでビジネスロジックを実装します

  2. Struts2ではController –、HTTPフィルターがコントローラーとして使用されます。基本的に、リクエスト/レスポンスの傍受や検証などのタスクを実行します

  3. View –は、処理されたデータを表示するために使用されます。通常はJSPファイルです

3. アプリケーションの設計

Webアプリの開発を進めましょう。 これは、ユーザーが特定のCarブランドを選択し、カスタマイズされたメッセージで迎えられるアプリケーションです。

3.1. Mavenの依存関係

次のエントリをpom.xmlに追加しましょう。


    org.apache.struts
    struts2-core
    2.5.10


    org.apache.struts
    struts2-junit-plugin
    2.5.10


    org.apache.struts
    struts2-convention-plugin
    2.5.10

依存関係の最新バージョンはhereにあります。

3.2. ビジネスの論理

特定の入力値のメッセージを返すアクションクラスCarActionを作成しましょう。 CarActionには、carName(ユーザーからの入力を格納するために使用)とcarMessage(表示されるカスタムメッセージを格納するために使用)の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クラスはCarMessageServiceを使用し、Carブランドのカスタマイズされたメッセージを提供します。

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ファイルの内容です:


    

Welcome to example Struts 2 app

Which car do you like !!

Please choose ferrari or bmw

<form>タグは、アクションを指定します(この場合、GET要求の送信先となるHTTP URIです)。

3.4. コントローラー部分

StrutsPrepareAndExecuteFilterはコントローラーであり、すべての着信要求をインターセプトします。 次のフィルターをweb.xml:に登録する必要があります


    struts2
    org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter



    struts2
    /*

StrutsPrepareAndExecuteFilterは、ワイルドカードに一致するURLを指定しているため、すべての着信要求をフィルタリングします<url-pattern>/ *

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()メソッドから返されます。 This is the default method name which will be executed

2番目の部分であるlocation,は、execute()メソッドが値を返した後に参照されるファイルを示します。 ここでは、execute()が値「success」の文字列を返す場合、リクエストをresult.jspに転送する必要があることを指定しています。

同じ構成は、XML構成ファイルを提供することで実現できます。


    
        
            /result.jsp
        
    

3.6. 景色

これは、ユーザーにメッセージを表示するために使用されるresult.jspの内容です。

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

    

Hello example User

You are a

ここで注意すべき重要な点が2つあります。

  • <@taglib prefix=”s” uri=”/struts-tags %>struts-tagsライブラリをインポートしています

  • <s:property value=”carMessage”/>では、struts-tagsライブラリを使用してプロパティcarMessageの値を出力しています。

4. アプリケーションを実行する

このWebアプリは、Apache Tomcatなどの任意のWebコンテナーで実行できます。 これらを達成するために必要な手順は次のとおりです。

  1. Webアプリをデプロイした後、ブラウザーを開き、次のURLにアクセスします:http://www.localhost.com:8080/MyStrutsApp/input.jsp

  2. 2つのオプションのいずれかを選択して、リクエストを送信します

  3. 選択した入力オプションに基づいてカスタマイズされたメッセージとともに、result.jspページに転送されます

5. 結論

このチュートリアルでは、最初のStruts2 Webアプリケーションを作成する方法を段階的にガイドしました。 Struts2ドメインのさまざまなMVC関連の側面を取り上げ、開発のためにそれらを組み合わせる方法を示しました。

いつものように、このチュートリアルはMavenプロジェクトとしてover on Githubにあります。