JspではJavaBeanを使用します


オリジナル作品は、転載を許可します.転載する時は必ずハイパーリンク形式で文章の原本の出所、作者の情報と本声明を明示してください.さもなくば法律責任を追及します.http://zhangjunhd.blog.51cto.com/113473/18210
JspではJavaBeanを使用します.
本論文では、JspでJavaBeanをどう使うかを紹介します.
1.JavaBeanコンポーネント標準
①java.io.Serializableインターフェースの実現
②パラメータなしの構造方法を提供する
③getter()とsetter()の方法を提供してその属性にアクセスします.
2.JSPでJavaBeanを使う
JSP仕様では、「jsp:useBen」、「jsp:set Property」、「jsp:useProperty」を定義して、JavaBenに対する参照を確立して、JavaBenの属性値を設定します.
 
2.1<Jsp:useBen>
<jsp:useBean id=”name” class=”classname” scope={“page/request/session/application”}/>
実行プロセス:
①指定されたscopeでnameというJavaBeanのインスタンスを検索します.
②見つけたら、nameという名前の局所変数を作成し、その参照はJavaBeanを指す.見つかっていない場合は、このscopeでnameというタイプのJavaBeanを作成し、それに対応するローカル変数を作成します.
 
2.2
<jsp:setProperty name=”beanName” propertyDetails/>
その中:
①name="beanName"は必須の属性です.その値はビーンの名前で、それ以前にJsp:useBeanで導入されたidです.
例:
<jsp:useBean id=”usersession” scope=”session” class=”com.user.UserSession”>
<jsp:setProperty name=”usersession” property=”name” value=”Tom”/>
</jsp:useBean>
②propertyDetailは、4つの異なる方法で属性の情報を指定できます.
[1]property="*"
これは、Bean属性を設定するショートカット方式であり、Beanでは、属性の名称、タイプは、requestオブジェクトのパラメータ名に一致しなければならない.requestオブジェクトの属性値に空きがある場合、対応するBean属性はいかなる値も設定されません.同様に、Beanのうちの一つの属性が対応するrequestパラメータ値を持っていないと、この属性は同様に設定されません.property="*"を使用して、Beanの属性はHTMLフォームの順序で並べ替えられません.
[2]property="propertyName"
requestの一つのパラメータ値を使用して,Beacnのうちの一つの属性値を指定した.ここで、propertyはBenの属性名を指定し、Bean属性とrequestパラメータの名称は同じであるべきです.requestオブジェクトのパラメータ値に空きがある場合、対応するBean属性はいかなる値も設定されない.
[3]property="propertyName"param="parameterName"
Bean属性の名称とrequestではパラメータの名前が異なる場合にこの方法を使用することができます.Paramは、requestのパラメータ名を指定します.requestオブジェクトのパラメータ値に空きがある場合、対応するBean属性はいかなる値も設定されません.
[4]property="propertyName"value="propertyValue"
valueは、指定された値を使用してビーンの属性を設定するオプションです.パラメータ値が空であれば、対応する属性値も設定されません.一つのの中で同時にparamとvalueを使うことができません.
 
2.3<Jsp:get Propty>
<jsp:get Property>操作は、ビーン属性にアクセスするための操作の追加です.
<jsp:getProperty name=”beanName” propertry=”propertyName”/>
①name="beanName"は必須の属性です.その値はビーンの名前で、それ以前にJsp:useBeanで導入されたidです.
例:
<jsp:useBean id=”usersession” scope=”session” class=”com.user.UserSession”>
<jsp:getProperty name=”usersession” property=”name” />
</jsp:useBean>
②property=「propertyName」は必須の属性です.その値は指定されたBeanの属性名です.
3.登録例1、property=「*」を使用する.
UserBean.java
package com.zj.sample;
import java.io.Serializable;
/**
 * Create a JavaBean
 */
public class UserBean implements Serializable {
    private static final long serialVersionUID = 1L;
    public String userName;
    public String password;
    public int age;
 
    public UserBean() {}
 
    public void setUserName(String name) {
       this.userName = name;
    }
 
    public void setPassword(String password) {
       this.password = password;
    }
 
    public void setAge(int age) {
       this.age = age;
    }
 
    public String getUserName() {
       return this.userName;
    }
 
    public String getPassword() {
       return this.password;
    }
 
    public int getAge() {
       return this.age;
    }
}
reg.
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
  <title>Reg</title>
</head>
<body>
  User Info:<br><hr>
  <form method="get" action="reg.jsp">
<table>
      // name="userName"  UserBean  
      <tr><td>Name:<input name="userName" type="text"></td></tr> 
      //name="password"  UserBean  
<tr><td>Password:<input name="password" type="password"></td></tr>
 //name="age"  UserBean  
      <tr><td>Age:<input name="age" type="text"></td></tr>
      <tr><td><input type="submit" value="submit"></td></tr>
    </table>
  </form> 
</body>
</html>
reg.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<jsp:useBean id="user" scope="page" class="com.zj.sample.UserBean" />
<jsp:setProperty name="user" property="*" />//  property="*"
 
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>Show Info</title>
</head>
<body>
    Reg successful!
    // property="userName"  UserBean  
    <br><jsp:getProperty name="user" property="userName" />
    // property="password"  UserBean  
    <br><jsp:getProperty name="user" property="password" />
    // property="age"  UserBean  
    <br><jsp:getProperty name="user" property="age" />
    <br>
</body>
</html>
4.登録例2、param="parameterName"を使用する.
UserBean.javaは上記と同じです.
reg 2.
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
  <title>Reg</title>
</head>
<body>
  User Info:<br><hr>
  <form method="get" action="reg2.jsp">
    <table>
      <tr><td>Name:<input name="USERNAME" type="text"></td></tr>
      <tr><td>Password:<input name="PASSWORD" type="password"></td></tr>
      <tr><td>Age:<input name="AGE" type="text"></td></tr>
      <tr><td><input type="submit" value="submit"></td></tr>
    </table>
  </form> 
</body>
</html>
reg 2.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<jsp:useBean id="user" scope="page" class="com.zj.sample.UserBean"/>
// property="userName"  UserBean  ,param="USERNAME"      
<jsp:setProperty name="user" property="userName" param="USERNAME"/>
// property="password"  UserBean  ,param="PASSWORD"      
<jsp:setProperty name="user" property="password" param="PASSWORD"/>
// property="age"  UserBean  ,param="AGE"      
<jsp:setProperty name="user" property="age" param="AGE"/>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
  <title>Show Info</title>
</head>
<body>
  Reg successful!<br>
  // property="userName"  UserBean  
  Name:<jsp:getProperty name="user" property="userName"/><br>
  // property="password"  UserBean  
  Password:<jsp:getProperty name="user" property="password"/><br>
  // property="age"  UserBean  
  Age:<jsp:getProperty name="user" property="age"/><br>
</body>
</html>
この記事は「子ぼうず」のブログから出ていますので、ぜひこのソースを残してください.http://zhangjunhd.blog.51cto.com/113473/18210