Jsp-java-beans

提供:Dev Guides
移動先:案内検索

JSP-JavaBeans

JavaBeanは、Javaで記述され、JavaBeans API仕様に従ってコーディングされた特別に構築されたJavaクラスです。

以下は、JavaBeanを他のJavaクラスと区別する固有の特性です-

  • デフォルトの引数なしのコンストラクタを提供します。
  • シリアル化可能で、 Serializable インターフェースを実装できるものでなければなりません。
  • 読み取りまたは書き込み可能な多くのプロパティがあります。
  • プロパティには多くの「 getter 」および「 setter 」メソッドがあります。

JavaBeansプロパティ

JavaBeanプロパティは、オブジェクトのユーザーがアクセスできる名前付き属性です。 属性は、定義するクラスを含む任意のJavaデータ型にすることができます。

JavaBeanプロパティは、 read、write、read only 、または write only になります。 JavaBeanのプロパティは、JavaBeanの実装クラスの2つのメソッドを介してアクセスされます-

S.No. Method & Description
1

getPropertyName()

たとえば、プロパティ名が_firstName_の場合、そのプロパティを読み取るためのメソッド名は* getFirstName()*になります。 このメソッドはアクセサーと呼ばれます。

2

setPropertyName()

たとえば、プロパティ名が_firstName_の場合、そのプロパティを書き込むメソッド名は* setFirstName()*になります。 このメソッドはミューテーターと呼ばれます。

読み取り専用属性には* getPropertyName()メソッドのみがあり、書き込み専用属性には setPropertyName()*メソッドのみがあります。

JavaBeansの例

プロパティがほとんどない学生クラスを検討します-

package com.finddevguides;

public class StudentsBean implements java.io.Serializable {
   private String firstName = null;
   private String lastName = null;
   private int age = 0;

   public StudentsBean() {
   }
   public String getFirstName(){
      return firstName;
   }
   public String getLastName(){
      return lastName;
   }
   public int getAge(){
      return age;
   }
   public void setFirstName(String firstName){
      this.firstName = firstName;
   }
   public void setLastName(String lastName){
      this.lastName = lastName;
   }
   public void setAge(Integer age){
      this.age = age;
   }
}

JavaBeansへのアクセス

*useBean* アクションは、JSPで使用するJavaBeanを宣言します。 宣言されたBeanは、JSPで使用されるスクリプト要素と他のカスタムタグの両方からアクセスできるスクリプト変数になります。 useBeanタグの完全な構文は次のとおりです-
<jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>

ここで、scope属性の値は、要件に応じて page、request、session 、または application based にすることができます。 id 属性の値は、同じJSP内の他の* useBean宣言*の中で一意の名前である限り、どのような値でもかまいません。

次の例は、useBeanアクションの使用方法を示しています-

<html>
   <head>
      <title>useBean Example</title>
   </head>

   <body>
      <jsp:useBean id = "date" class = "java.util.Date"/>
      <p>The date/time is <%= date %>
   </body>
</html>

次の結果が表示されます− −

The date/time is Thu Sep 30 11:18:11 GST 2010

JavaBeansプロパティへのアクセス

*<jsp:useBean ...>* アクションとともに、 *<jsp:getProperty/>* アクションを使用してgetメソッドにアクセスし、 *<jsp:setProperty/>* アクションを使用してsetメソッドにアクセスできます。 完全な構文は次のとおりです-
<jsp:useBean id = "id" class = "bean's class" scope = "bean's scope">
   <jsp:setProperty name = "bean's id" property = "property name"
      value = "value"/>
   <jsp:getProperty name = "bean's id" property = "property name"/>
   ...........
</jsp:useBean>

name属性は、u​​seBeanアクションによって以前にJSPに導入されたJavaBeanのIDを参照します。 プロパティ属性は、呼び出す必要のある get または set メソッドの名前です。

次の例は、上記の構文を使用してデータにアクセスする方法を示しています-

<html>
   <head>
      <title>get and set properties Example</title>
   </head>

   <body>
      <jsp:useBean id = "students" class = "com.finddevguides.StudentsBean">
         <jsp:setProperty name = "students" property = "firstName" value = "Zara"/>
         <jsp:setProperty name = "students" property = "lastName" value = "Ali"/>
         <jsp:setProperty name = "students" property = "age" value = "10"/>
      </jsp:useBean>

      <p>Student First Name:
         <jsp:getProperty name = "students" property = "firstName"/>
      </p>

      <p>Student Last Name:
         <jsp:getProperty name = "students" property = "lastName"/>
      </p>

      <p>Student Age:
         <jsp:getProperty name = "students" property = "age"/>
      </p>

   </body>
</html>
*StudentsBean.class* をCLASSPATHで使用できるようにします。 上記のJSPにアクセスします。 次の結果が表示されます-
Student First Name: Zara

Student Last Name: Ali

Student Age: 10