JavaBean是一种可重复使用,且跨平台的软件组件。JavaBean可分为两种,一种是有用户界面(UI,User Interface)的JavaBean;一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一JavaBean。
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。
public class PersonBean{ //类必须是公共的
private String name;
private int age;
PersonBean(){ } //无参构造方法
get ;set 方法
}
一个标准的JavaBean有以下几个特性(规范要求):
1.JavaBean是一个公共(public)的类
2.JavaBean有一个不带参数的构造方法。
3. JavaBean通过setXXX方法设置值,通过getXXX方法得到值。
为什么遵循这样的规范:
当所有的JavaBean遵守相同的规范,<jsp:getProperty>和<jsp:setProperty>标记就能自动根据JavaBean的属性来推断出它的get和set访问方法。
JSP访问JavaBean的语法:
1.导入JavaBean <%@ import="com.isoftstone.bean.Person"%>表示页面可以使用
2.声明JavaBean对象<jsp:useBean id="person" class="com.isoftstone.bean.Person" > 相当于new了一个Person对象。
3.访问JavaBean属性<jsp:getProperty property="name" name="person">
<jsp:getProperty property="age" name="person"> name就是Bean的名字。
id属性:在所定义的范围内确认Bean的变量,使之能在后面的程序中使用此变量名来分辨不同的Bean,这个变量对大小写敏感,必须符合所使用脚本语言的规定。如果Bean已经在别的<jsp:userBean>标记中创建,则当使用这个已经创建过的Bean时,id的值必须与原来的那个id值一样,否则则意味着创建了同一个类的两个不同的对象。
设置属性可以<jsp:setProperty property="name" name="person" value="zhangsan">
<jsp:setProperty property="age" name="person" param="helloworld">
helloword参数的值就可以赋给age.相当于age=request.getParameter("helloworld");
这样可以实现对Bean的属性动态赋值。
JavaBean的范围:
scope:默认为page(当前页面,存活范围最小).决定了JavaBean对象的存在范围。scope的可选值:page,request,session,application