JavaBeanテクノロジーの初歩

14932 ワード

JavaBeanとは、プログラム内のエンティティオブジェクトおよびビジネスロジックをJavaクラスに個別にカプセル化することである.その後、JSPページでこのパッケージされたクラスを呼び出すことで、HTMLとJavaコードの結合度を低減し、インタフェースを簡素化することができます.
JavaBeanの仕様
  • 共通の非パラメトリック構造方法:newによってオブジェクトを直接インスタンス化することができる.
  • 類の申明非finalタイプ:finalタイプは変更できません.
  • シーケンシャルインタフェースを実装:JavaBeanはJava.io.Serializableインタフェースを直接または間接的に実装すべきであり、シーケンス化メカニズムをサポートしている.
  • プロパティ宣言アクセサの実際の開発では、JavaBeanのプロパティは小文字で始まるべきで、アルパカネーミング法を採用しています.

  • JavaBeanのプロパティの取得
    Produceクラス
    public class Produce {
        private String name="Java    ";
        private double price=200;
        private int count=10;
    
        public Produce(){}
        public String getName() { return name;  }
        public void setName(String name) { this.name = name; }
        public double getPrice() { return price; }
        public void setPrice(double price) { this.price = price; }
        public int getCount() { return count; }
        public void setCount(int count) { this.count = count; }
    }
    

    index.jspへのアクセス
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <jsp:useBean id="Produce" class="com.java.model.Produce"></jsp:useBean>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      <ul>
        <li><%=Produce.getName()%></li>
        <li><%=Produce.getPrice()%></li>
        <li><%=Produce.getCount()%></li>
      </ul>
      </body>
    </html>

    JavaBeanのプロパティにクラスを割り当てるか、それとも前のProduceクラスを使うか
    <jsp:useBean id="produce" class="com.java.model.Produce" ></jsp:useBean>
    <jsp:setProperty name="Produce" property="name" value="JAVA WEB    "></jsp:setProperty>
    <jsp:setProperty name="Produce" property="price" value="100"></jsp:setProperty>
    <jsp:setProperty name="Produce" property="count" value="20"></jsp:setProperty>
    <body>
    <ul>
        <li><jsp:getProperty name="Produce" property="name"></jsp:getProperty></li>
        <li><jsp:getProperty name="Produce" property="price"></jsp:getProperty></li>
        <li><jsp:getProperty name="Produce" property="count"></jsp:getProperty></li>
    </ul>
    </body>

    JSPページ間でのJavaBeanの適用
    addProduce.jspページ
    <body>
    <form action="showProduce.jsp" method="post">
        <input type="text" name="name"><br>
        <input type="text" name="price"><br>
        <input type="text" name="count"><br>
        <input type="submit">
    </form>
    </body>

    showProduce.jspページ
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <% request.setCharacterEncoding("UTF-8");%>
    <jsp:useBean id="produce" class="com.java.model.Produce" >
        <jsp:setProperty name="produce" property="*"></jsp:setProperty>   //  property="*"            name  
    </jsp:useBean>
    <html>
    <head>
        <title>    </title>
    </head>
    <body>
        <ul>
            <li><jsp:getProperty name="produce" property="name"></jsp:getProperty></li>
            <li><jsp:getProperty name="produce" property="price"></jsp:getProperty></li>
            <li><jsp:getProperty name="produce" property="count"></jsp:getProperty></li>
        </ul>
    </body>
    </html>

    属性名が対応していない場合は、次の方法で値を割り当てることができます.
    <% request.setCharacterEncoding("UTF-8");%>
    <jsp:useBean id="produce" class="com.java.model.Produce" >
        <jsp:setProperty name="produce" property="name" param="username"></jsp:setProperty>   
        <jsp:setProperty name="produce" property="price" param="userprice"></jsp:setProperty>   
        <jsp:setProperty name="produce" property="count" param="usercount"></jsp:setProperty>   
    </jsp:useBean>