Struts2-注釈

前述のように、Strutsは2つの構成形式を提供します。従来の方法は、struts.xmlすべての構成のファイル。これまでのチュートリアルでは、その例を数多く見てきました。Strutsを構成するもう1つの方法は、Java5アノテーション機能を使用することです。支柱の注釈を使用して、Zero Configuration

プロジェクトでアノテーションの使用を開始するには、次のjarファイルがプロジェクトに含まれていることを確認してください。 WebContent/WEB-INF/lib フォルダ-

  • struts2-convention-plugin-x.y.z.jar
  • asm-x.y.jar
  • antlr-x.y.z.jar
  • commons-fileupload-x.y.z.jar
  • commons-io-x.y.z.jar
  • commons-lang-x.y.jar
  • commons-logging-x.y.z.jar
  • commons-logging-api-x.y.jar
  • freemarker-x.y.z.jar
  • javassist-.xy.z.GA
  • ognl-x.y.z.jar
  • struts2-core-x.y.z.jar
  • xwork-core.x.y.z.jar

それでは、で利用可能な構成を廃止する方法を見てみましょう。 struts.xml ファイルを作成し、注釈に置き換えます。

Struts2の注釈の概念を説明するには、Struts2の検証の章で説明した検証の例を再検討する必要があります。

ここでは、名前と年齢が単純なページを使用して取得される従業員の例を取り上げ、ÜSERが常に名前を入力し、年齢が28〜65であることを確認するために2つの検証を行います。

例のメインJSPページから始めましょう。

メインページを作成する

メインページのJSPファイルを書いてみましょう index.jsp、上記の従業員関連情報を収集するために使用されます。

<%@ page language = "java" contentType = "text/html; charset = ISO-8859-1"
   pageEncoding = "ISO-8859-1"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
   <head>
      <title>Employee Form</title>
   </head>

   <body>
      
      <s:form action = "empinfo" method = "post">
         <s:textfield name = "name" label = "Name" size = "20" />
         <s:textfield name = "age" label = "Age" size = "20" />
         <s:submit name = "submit" label = "Submit" align="center" />
      </s:form>

   </body>
</html>

index.jspはStrutsタグを使用しますが、これについてはまだ説明していませんが、タグ関連の章で学習します。ただし、今のところ、s:textfieldタグが入力フィールドを出力し、s:submitが送信ボタンを出力すると仮定します。各タグのラベルを作成する各タグのlabelプロパティを使用しました。

ビューを作成する

JSPファイルを使用します success.jsp これは、定義されたアクションが返される場合に呼び出されます SUCCESS

<%@ page language = "java" contentType = "text/html; charset = ISO-8859-1"
	pageEncoding = "ISO-8859-1"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
   <head>
      <title>Success</title>
   </head>
   
   <body>
      Employee Information is captured successfully.
   </body>
</html>

アクションの作成

これは、注釈が使用される場所です。アクションクラスを再定義しましょうEmployee アノテーションを付けて、というメソッドを追加します validate () 以下に示すように Employee.javaファイル。アクションクラスが拡張することを確認してくださいActionSupport それ以外の場合、validateメソッドは実行されません。

package com.tutorialspoint.struts2;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.validator.annotations.*;

@Results({
   @Result(name = "success", Location = "/success.jsp"),
   @Result(name = "input", Location = "/index.jsp")
})
public class Employee extends ActionSupport {
   private String name;
   private int age;

   @Action(value = "/empinfo")
   
   public String execute() {
      return SUCCESS;
   }

   @RequiredFieldValidator( message = "The name is required" )
   
   public String getName() {
      return name;
   }
   
   public void setName(String name) {
      this.name = name;
   }

   @IntRangeFieldValidator(message = "Age must be in between 28 and 65", min = "29", max = "65")
   
   public int getAge() {
      return age;
   }
   
   public void setAge(int age) {
      this.age = age;
   }
}

この例では、いくつかの注釈を使用しました。それらを一つずつ見ていきましょう−

  • まず、 Results注釈。結果アノテーションは結果のコレクションです。

  • 結果の注釈の下に、2つの結果の注釈があります。結果の注釈にはnameこれは、executeメソッドの結果に対応します。また、execute()からの戻り値に対応して提供するビューに関する場所も含まれています。

  • 次の注釈は Action注釈。これは、execute()メソッドを装飾するために使用されます。Actionメソッドは、アクションが呼び出されるURLである値も受け取ります。

  • 最後に、私は2つを使用しました validation注釈。で必要なフィールドバリデーターを構成しましたname フィールドと整数範囲バリデーター ageフィールド。また、検証用のカスタムメッセージを指定しました。

構成ファイル

私たちは本当に必要ありません struts.xml 設定ファイルなので、このファイルを削除して、の内容を確認しましょう。 web.xml ファイル-

<?xml version = "1.0" Encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns = "http://java.sun.com/xml/ns/javaee"
   xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   id = "WebApp_ID" version = "3.0">

   <display-name>Struts 2</display-name>
   
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>

   <filter>
      <filter-name>struts2</filter-name>
      
      <filter-class>
         org.apache.struts2.dispatcher.FilterDispatcher
      </filter-class>
      
      <init-param>
         <param-name>struts.devMode</param-name>
         <param-value>true</param-value>
      </init-param>
   </filter>

   <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
</web-app>

次に、プロジェクト名を右クリックして、 Export > WAR FileWarファイルを作成します。次に、このWARをTomcatのwebappsディレクトリにデプロイします。最後に、Tomcatサーバーを起動し、URLにアクセスしてみますhttp://localhost:8080/HelloWorldStruts2/index.jsp。これにより、次の画面が表示されます-

必要な情報を入力せずに、をクリックするだけです。 Submitボタン。次の結果が表示されます-

必要な情報を入力しますが、間違ったFromフィールドを入力し、名前を「テスト」、年齢を30と言い、最後にクリックします。 Submitボタン。次の結果が表示されます-

Struts2アノテーションタイプ

Struts 2アプリケーションは、XMLおよびJavaプロパティ構成の代わりにJava5アノテーションを使用できます。さまざまなカテゴリに関連する最も重要な注釈のリストを確認できます-

Struts2アノテーションタイプ。