JSP Java Beans

  • Java Beans

    JavaBean 是用Java编写并根据JavaBeans API规范进行编码的特殊构造的Java类。以下是将JavaBean与其他Java类区分开的独特特征-
    • 它提供了一个默认的无参数构造函数。
    • 它应该是可序列化的,并且可以实现Serializable接口。
    • 它可能具有许多可以读取或写入的属性。
    • 它可能有许多用于属性的“getter”和“setter”方法。
  • Java Beans 属性

    JavaBean属性是对象的用户可以访问的命名属性。该属性可以是任何Java数据类型,包括您定义的类。JavaBean属性可以是可读,可写,只读或只写。JavaBean属性通过JavaBean的实现类中的两种方法访问-
    • getPropertyName() - 例如,如果属性名称为firstName,则您的方法名称将为getFirstName() 以读取该属性。此方法称为访问器。
    • setPropertyName() - 例如,如果属性名称为firstName,则您的方法名称将为setFirstName() 以写入该属性。此方法称为设置器。
    只读属性将仅具有getPropertyName()方法,而只写属性将仅具有setPropertyName()方法。
  • Java Beans 示例

    下面是一个属性很少的Students类-
    
    package com.jc2182.demo;
    
    import java.io.Serializable;
    
    public class StudentsBean implements Serializable {
     
      private static final long serialVersionUID = -5257700982261451969L;
      
         public String firstName = null;
         public String lastName = null;
         public String age = null;
    
         public StudentsBean() {
         }
         public String getFirstName(){
            return firstName;
         }
         public String getLastName(){
            return lastName;
         }
         public String getAge(){
            return age;
         }
         public void setFirstName(String firstName){
            this.firstName = firstName;
         }
         public void setLastName(String lastName){
            this.lastName = lastName;
         }
         public void setAge(String age){
            this.age = age;
         }
      }
    
  • 访问 Java Beans

    useBean的动作宣告了一个JavaBean用于在JSP中使用。声明后,bean成为脚本变量,可以由JSP中使用的脚本元素和其他自定义标签访问。useBean标签的完整语法如下:
    
    <jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>
    
    根据您的要求,scope属性的值可以是page,request,session或application。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>
    
    尝试一下
  • 访问 Java Beans 属性

    与<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属性引用先前由useBean操作引入JSP的JavaBean的ID。property属性是应调用的get或set方法的名称。以下示例显示如何使用上述语法访问数据-
    
    <html>
       <head>
          <title>get and set properties Example</title>
       </head>
       
       <body>
          <jsp:useBean id = "students" class = "com.jc2182.demo.StudentsBean"> 
             <jsp:setProperty name = "students" property = "firstName" value = "Moo"/>
             <jsp:setProperty name = "students" property = "lastName" value = "Alex"/>
             <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>
    
    让我们在CLASSPATH中提供StudentsBean.class。访问上面的JSP。将显示以下结果-
    javabeans