JSP - Java Bean( Java Beans)
JavaBean是一个特殊构造的Java类,用Java编写并根据JavaBeans API规范进行编码。
以下是区分JavaBean与其他Java类的独特特征 -
它提供了一个默认的无参数构造函数。
它应该是可序列化的,并且可以实现Serializable接口。
它可能具有许多可以读取或写入的属性。
它可能具有许多属性的“ getter ”和“ setter ”方法。
JavaBeans属性
JavaBean属性是可由对象的用户访问的命名属性。 该属性可以是任何Java数据类型,包括您定义的类。
JavaBean属性可以是read, write, read only或write only 。 通过JavaBean的实现类中的两个方法访问JavaBean属性 -
S.No. | 方法和描述 |
---|---|
1 | 获取PropertyName () 例如,如果属性名称为firstName ,则您的方法名称将为getFirstName()以读取该属性。 此方法称为访问器。 |
2 | 设置PropertyName () 例如,如果属性名称为firstName ,则您的方法名称将为setFirstName()以写入该属性。 这种方法叫做mutator。 |
只读属性只有getPropertyName()方法,而只写属性只有setPropertyName()方法。
JavaBeans示例
考虑一个属性很少的学生班 -
package com.iowiki;
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;
}
}
访问JavaBeans
useBean操作声明了一个用于JSP的JavaBean。 声明之后,bean成为脚本变量,可以由JSP中使用的脚本元素和其他自定义标记访问。 useBean标记的完整语法如下 -
<jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>
这里scope属性的值可以是application based您的要求的page, request, session或application based 。 id属性的值可以是任何值,只要它是同一JSP中其他useBean declarations中的唯一名称即可。
以下示例显示了如何使用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
访问JavaBeans属性
与《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.iowiki.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