以下内容引用自http://wiki.jikexueyuan.com/project/jsp/beans.html:
JavaBean是在编写Java时专门创建的Java类,根据JavaBean API规范进行编码。以下是区分JavaBean和其他Java类的特有的特征:
它提供了一个默认的无参数构造函数。
它应该是可序列化的,实现serializable接口。
它可能有大量可以读或写的属性。
- 它可能有大量“getter”和“setter”方法的属性。
一、JavaBean属性
JavaBean属性是一个命名属性,这个属性是用户可以访问的对象。属性可以是任何Java数据类型,包括自定义的类。
JavaBean属性可以读、写、只读或只写。JavaBean属性是在JavaBean实现类中通过两种方法访问的:
方法 | 描述 |
---|---|
getPropertyName() | 例如,如果属性名称是firstName,方法名称应该是getFirstName(),它可以读该属性。该方法叫做访问器。 |
setPropertyName() | 例如,如果属性名称是firstName,方法名称应该是setFirstName(),它可以写该属性。该方法叫做赋值方法。 |
一个只读属性只会有一个getPropertyName()方法,而一个只写属性将只有一个setPropertyName()方法。
二、JavaBeans例子
考虑一个带有一些属性的Student类:
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(int age){
this.age = age;
}
}
三、访问JavaBeans
在一个JSP页面使用时,useBean操作声明一个对象。一旦声明,bean成为脚本变量,在使用它的JSP页面中,它可以通过脚本元素和其他自定义标签访问。useBean标签的完整的语法如下:
<jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>
根据需求,这里scope属性值可能是页面、请求、会话或应用程序。id属性的值可以是任何值,在同一个JSP页面中,只要它是一个唯一的名字与其他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>
产生的结果如下所示:
四、访问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>
该名称属性通过useBean操作把先前介绍JavaBean的id引用到JSP页面中。该属性的属性是应该被调用get或set方法的名称。
下面是一个使用上面的语法访问数据的简单的例子:
<html>
<head>
<title>get and set properties Example</title>
</head>
<body> <jsp:useBean id="students" class="com.jsoft.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>
这将产生以下结果:
测试工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test19