English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JSP JavaBean

JavaBean は特殊な Java クラスであり、Java 言語で書かれており、JavaBean API ノーマル化に従っています。

次に示されるのは、JavaBean が他の Java クラスと比べてユニークな特徴です:

  • デフォルトの無引数コンストラクタを提供しています。

  • シリアライズされ、Serializable インターフェースを実装しています。

  • 読み取り書き込み属性が一連に存在する可能性があります。

  • getter や setter メソッド。

JavaBean 属性

JavaBean オブジェクトの属性はアクセス可能であるべきです。この属性は、任意の合法な Java データ型、またはカスタム Java クラスでできます。

JavaBean オブジェクトの属性は読み取り専用、または読み取り書き込み、または書き込み専用の可能性があります。JavaBean オブジェクトの属性は、JavaBean 実装クラスで提供される二つのメソッドを通じてアクセスされます:

メソッド説明
getPropertyName() 例えば、属性の名前が myNameの場合、このメソッドの名前は getMyName()と書かれ、この属性を読み取ります。このメソッドもアクセスメソッドと呼ばれます。
setPropertyName() 例えば、属性の名前が myNameの場合、このメソッドの名前は setMyName()と書かれ、この属性に書き込みを行います。このメソッドも書き込ムータと呼ばれます。

読み取り専用の属性は getPropertyName() メソッドのみを提供し、書き込み専用の属性は setPropertyName() メソッドのみを提供します。

JavaBean プログラム例

これは StudentBean.java ファイルです:

package com.w3codebox;
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(int age) {
      this.age = age;
   {}
{}

StudentBean.javaファイルをコンパイルします(最後の例で使用されます):

$ javac StudentsBean.java

コンパイルして、以下を得ます StudentBean.class ファイルを、以下にコピーします <JSP プロジェクト>/WebContent/WEB-INF/classes/com/w3codebox、以下の図に示されています:

JavaBeanにアクセスします

<jsp:useBean>タグは、JSPでJavaBeanを宣言し、使用することができます。宣言後、JavaBeanオブジェクトはスクリプト変数となり、スクリプト要素やカスタムタグを通じてアクセスできます。<jsp:useBean>タグの構文は以下の通りです:

<jsp:useBean id="bean の 名前" scope="bean の 作用域" typeSpec/>

具体的な状況に応じて、scopeの値はpage、request、session、applicationのいずれかになります。idの値は、同一のJSPファイル内の他の<jsp:useBean>のid値と重複しないように自由に設定できます。

次に、<jsp:useBean>タグの簡単な使い方を示します:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>useBean 例</title>
</head>
<body>
<jsp:useBean id="date" /> 
<p>日付は:<%= date %>
</body>
</html>

以下のような結果が得られます:

日付は:Tue Jun 28 15:22:24 CST 2016

JavaBeanオブジェクトの属性にアクセスします

<jsp:useBean> タグの主体で使用します <jsp:getProperty/> タグを使用して呼び出します getter メソッドを使用して <jsp:setProperty/> タグを使用して呼び出します setter メソッドの構文は以下の通りです:

<jsp:useBean id="id" scope="bean 作用域">
   <jsp:setProperty name="bean の id" property="属性名"  
                    value="値"/>
   <jsp:getProperty name="bean の id" property="属性名"/>
   ...........
</jsp:useBean>

name属性はBeanのid属性を指します。property属性は呼び出したいgetterやsetterメソッドを指します。

次に、上記の構文を使用した属性アクセスの簡単な例を示します:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>get と set 属性の例</title>
</head>
<body>
<jsp:useBean id="students" 
                   > 
   <jsp:setProperty name="students" property="firstName"
                    value="小強"/>
   <jsp:setProperty name="students" property="lastName" 
                    value="王"/>
   <jsp:setProperty name="students" property="age"
                    value="10"/>
</jsp:useBean>
<p>学生の名前: 
   <jsp:getProperty name="students" property="firstName"/>
</p>
<p>学生の姓: 
   <jsp:getProperty name="students" property="lastName"/>
</p>
<p>学生の年齢: 
   <jsp:getProperty name="students" property="age"/>
</p>
</body>
</html>

上記の JSP にアクセスし、以下の結果が得られます:

学生の名前: 小強
学生の姓: 王
学生の年齢: 10