文章目录
JavaBean是Java Web程序的重要组成部分,是一个可重复使用的软件组件,是用Java语言编写的、遵循一定标准的类,它封装了数据和业务逻辑,供JSP或Servlet调用,完成数据封装和数据处理等功能。
一、JavaBean的设计
1.1 设计规则
JavaBean的设计规则
- JavaBean是一个公共类。
- JavaBean类具有一个公共的无参的构造方法。
- JavaBean所有的属性定义为私有的。
- 在JavaBean中,需要对每个属性提供两个公共方法。假设属性名字是xxx,要提供的两个方法:
- setXxx():用来设置属性xxx的值。
- getXxx():用来获取属性xxx的值(若属性类型是boolean,则方法名为isXxx())。
- 定义JavaBean时,通常放在一个命名的包下。
1.2 设计案例
设计一个表示圆的JavaBean类Circle.java
public class Circle {
private double radius;//半径
private double x;//圆心x值
private double y;//圆心y值
/**
* get/set方法
* @return
*/
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
//无参构造
public Circle() {
super();
// TODO Auto-generated constructor stub
}
}
二、在JSP中使用JavaBean
2.1 声明JavaBean对象
声明JavaBean对象,需要用到<jsp:useBean>
动作标签
格式:
<jsp:useBean id="对象名" class="JavaBean类名" scope="作用范围" />
在指定的范围内,调用class属性所指定的类的无参构造方法生成对象。若该对象已存在,则直接调用。
说明:
- class属性:指定JavaBean的类名,并且必须使用全限定类名。
- id属性:指定创建的对象名。
- scope属性:指定对象的作用范围。取值为
page
request
session
application
四种,默认值为page
例如,
<jsp:useBean id="circle" class="beans.Circle" scope="page"/>
2.2 设置JavaBean属性值
需要使用<jsp:setProperty>
动作标签来调用JavaBean中的 set
方法来设置属性值。
1.直接赋值
格式
<jsp:setProperty name="对象名" property="属性名" value="属性值"/>
说明:
- name属性:指定JavaBean对象名
- property属性:指定要设置的属性名
- value属性:指定属性值
实例:
<jsp:useBean id="circle" class="test1.Circle" scope="page"/>
<jsp:setProperty property="x" name="circle" value="10"/>
<jsp:setProperty property="y" name="circle" value="20"/>
<!-- 给圆心x,y赋值-->
2.单个属性与输入参数的直接关联
客户端提交的请求参数可以直接给JavaBean实例中的同名属性赋值。
格式:
<jsp:setProperty name="对象名" property="属性名" />
实例:
<jsp:useBean id="circle" class="test1.Circle" scope="page"/>
<jsp:setProperty property="x" name="circle" />
<jsp:setProperty property="y" name="circle" />
注意:参数名应当与属性名相同
3.单个属性与输入参数的间接关联
若输入的参数名与JavaBean的属性名不同,则可以间接赋值
格式:
<jsp:setProperty name="对象名" property="属性名" param="参数名" />
例子:
<jsp:useBean id="circle" class="test1.Circle" scope="page"/>
<jsp:setProperty property="x" name="circle" param="shuju1" />
<jsp:setProperty property="y" name="circle" param="shuju2"/>
4. 所有的属性与请求参数关联
将所有的参数给JavaBean中的与参数同名属性赋值
格式:
<jsp:setProperty name="对象名" property="*" />
举例:
<jsp:useBean id="circle" class="test1.Circle" scope="page"/>
<jsp:setProperty property="*" name="circle" />
2.3 访问JavaBean属性
显示JavaBean属性值,需要用到<jsp:getProperty>
动作标签
格式:
<jsp:getProperty name="对象名" property="属性名" />
例如,
<jsp:getProperty name="circle" property="x" />
2.4 访问JavaBean方法
使用<jsp:useBean>
动作标签实例化一个JavaBean对象后,可以使用JSP脚本代码来调用JavaBean中的方法。
例如:
<jsp:useBean id="circle" class="test1.Circle" scope="page"/>
<%
circle.setRadius(4);
out.print(circle.getRadius());
%>