JSP-JavaBeans


JavaBean 是用 Java 编写并根据 JavaBeans API 规范进行编码的特殊构造的 Java 类。

以下是将 JavaBean 与其他 Java 类区分开来的独特特征 -

  • 它提供了一个默认的、无参数的构造函数。

  • 它应该是可序列化的并且可以实现Serialized接口。

  • 它可能具有许多可以读取或写入的属性。

  • 它可能有许多属性的“ getter ”和“ setter ”方法。

JavaBean 属性

JavaBean 属性是对象的用户可以访问的命名属性。该属性可以是任何 Java 数据类型,包括您定义的类。

JavaBean 属性可以是读、写、只读只写。JavaBean 属性是通过 JavaBean 实现类中的两个方法访问的:

编号 方法及说明
1

获取属性名()

例如,如果属性名称为firstName ,则用于读取该属性的方法名称将为getFirstName() 。该方法称为访问器。

2

设置属性名()

例如,如果属性名称是firstName,则您的方法名称将是setFirstName()来写入该属性。这种方法称为变异器。

只读属性将仅具有getPropertyName()方法,而只写属性将仅具有setPropertyName()方法。

JavaBeans 示例

考虑一个具有很少属性的学生班级 -

package com.tutorialspoint;

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;
   }
}

访问 JavaBean

useBean操作声明一个在 JSP 中使用的 JavaBean 一旦声明,bean 就成为一个脚本变量,可以由脚本元素和 JSP 中使用的其他自定义标记访问。useBean 标签的完整语法如下 -

<jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>

这里范围属性的值可以是页面、请求、会话应用程序,具体取决于您的要求。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 

访问 JavaBean 属性

<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 属性是应调用的getset方法的名称。

以下示例展示了如何使用上述语法访问数据 -

<html>
   <head>
      <title>get and set properties Example</title>
   </head>
   
   <body>
      <jsp:useBean id = "students" class = "com.tutorialspoint.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>

让我们在 CLASSPATH 中提供StudentsBean.class。访问上面的 JSP。将显示以下结果 -

Student First Name: Zara 

Student Last Name: Ali 

Student Age: 10