JavaBean是用Java语言所写成的可重用(复用)组件,它可以用于系统的很多层中,如PO、VO、DTO、POJO等,其应用十分广泛。
一、获取JavaBean属性信息
在JavaBean对象中,为了防止外部直接对JavaBean属性的调用,通常将JavaBean中的属性设置为private(私有的),但需要为其提供public(公共的)访问方法,也就是所说的getXXX()方法。下面通过实例演示如何获取JavaBean属性信息。
1、创建名称为Produce的类,该类是封装商品对象的JavaBean,在Produce类中创建商品属性,并提供相应的getXXX()方法。
public class Produce {
//商品名称
private String name="电吉他";
//商品价格
private double price=1880.5;
//数量
private int count=100;
//出场地址
private String factoryAdd="吉林省长春市 XXX 琴行";
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public int getCount() {
return count;
}
public String getFactoryAdd() {
return factoryAdd;
}
本例只演示如何获取JavaBean属性信息,所以对Produce类中的属性设置了默认值2、在JSP页面中获取商品JavaBean中的属性信息,该操作通过JSP动作标签进行获取。
<jsp:useBean id="produce" class="com.javaBean.applicaion.Produce" />
<div>
<ul>
<li>
商品名称:<jsp:getProperty property="name" name="produce"/>
</li>
<li>
价格:<jsp:getProperty property="price" name="produce"/>
</li>
<li>
数量:<jsp:getProperty property="count" name="produce"/>
</li>
<li>
厂址:<jsp:getProperty property="factoryAdd" name="produce"/>
</li>
</ul>
</div>
在JavaWeb开发中,JSP页面中应该尽量避免出现Java代码,因为出现这样的代码看起来比较混乱,所以实例中采用JSP动作标签来避免这一问题。本实例主要通过<jsp:useBean>标签实例化商品的JavaBean对象,<jsp:getProperty>标签获取JavaBean中的属性信息。实例运行结果如图:
二、对JavaBean属性赋值
编写JavaBean对象要遵循JavaBean规范,在JavaBean规范中的访问器setXXX()方法,用于对JavaBean中的属性赋值,如果对JavaBean对象的属性提供了setXXX()方法,在JSP页面中就可以通过<jsp:setProperty>对其进行赋值。
下面通过实例演示:
1、延续使用之前创建的Produce类,在该类中添加提供属性的setXXX()方法。
public class Produce {
//商品名称
private String name="电吉他";
//商品价格
private double price=1880.5;
//数量
private int count=100;
//出场地址
private String factoryAdd="吉林省长春市 XXX 琴行";
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public int getCount() {
return count;
}
public String getFactoryAdd() {
return factoryAdd;
}
public void setName(String name) {
this.name = name;
}
public void setPrice(double price) {
this.price = price;
}
public void setCount(int count) {
this.count = count;
}
public void setFactoryAdd(String factoryAdd) {
this.factoryAdd = factoryAdd;
}
2、延续使用之前创建的index.jsp,在该页面中添加使用<jsp:setProperty>标签对属性进行赋值并输出。
<jsp:useBean id="produce" class="com.javaBean.applicaion.Produce"/>
<%-- 只是临时的改变,并没有真正改变Produce类的默认赋值 --%>
<jsp:setProperty property="name" name="produce" value="洗衣机"/>
<jsp:setProperty property="price" name="produce" value="8888.88"/>
<jsp:setProperty property="count" name="produce" value="88"/>
<jsp:setProperty property="factoryAdd" name="produce" value="广东省 XXX 公司"/>
<div>
<ul>
<li>
商品名称:<jsp:getProperty property="name" name="produce"/>
</li>
<li>
价格:<jsp:getProperty property="price" name="produce"/>
</li>
<li>
数量:<jsp:getProperty property="count" name="produce"/>
</li>
<li>
厂址:<jsp:getProperty property="factoryAdd" name="produce"/>
</li>
</ul>
</div>
index.jsp页面是程序中的首页,页面主要通过<jsp:userBean>标签实例化Produce对象,通过<jsp:setProperty>标签对Produce对象中的属性进行赋值,然后再通过<jsp:getProperty>标签输出已赋值的Produce对象中的属性信息。结果如图:三、在JSP页面中应用JavaBean
在JSP页面中应用JavaBean非常简单,相信通过上面两点大家已经清楚了,主要通过JSP动作标签<jsp:userBean>、<jsp:getProperty>、<jsp:setProperty>来实现对JavaBean对象的操作,但所编写的JavaBean对象要遵循JavaBean规范,只有严格遵循JavaBean规范,在JSP页面中才能够方便地调用及操作JavaBean。
将JavaBean对象应用到JSP页面中,JavaBean的生命周期可以自行进行设置,它存在于4种范围内,分别为page、request、session和application,默认情况下,JavaBean作用于page范围内,也就是当前页。
下面通过实例完整地演示JavaBean通过JSP页面来进行先存后取的过程:
1、创建名称为Person的类,实现对用户信息的封装。
public class Person {
//姓名
private String name;
//年龄
private int age;
//性别
private String sex;
//住址
private String add;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAdd() {
return add;
}
public void setAdd(String add) {
this.add = add;
}
在Person类中包含四个属性,分别代表姓名、年龄、性别与住址,该类在实例中充当用户信息对象的JavaBean。2、创建程序的主页面index.jsp,在页面中放置录入用户信息的表单。
<form action="<%=basePath %>jspApplication/reg.jsp" method="post">
<table align="center" width="400px" height="200px" border="1px">
<tr>
<td align="center" colspan="2" height="40px">
<b>添加用户信息</b>
</td>
</tr>
<tr>
<td align="right">姓 名:</td>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<td align="right">年 龄:</td>
<td><input type="text" name="age"/></td>
</tr>
<tr>
<td align="right">性 别:</td>
<td><input type="text" name="sex"/></td>
</tr>
<tr>
<td align="right">住 址:</td>
<td><input type="text" name="add"/></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="添 加">
</td>
</tr>
</table>
</form>
3、创建名称为reg.jsp的JSP页面,用于对index.jsp页面中表单的提交请求进行处理。该页面将获取表单提交的所有信息,然后将所获取的用户信息输出到页面中。<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="person" class="com.javaBean.jspApplication.Person"
scope="page">
<%-- scope属性表示从表单获取的值存储的范围,有page,request,session,application --%>
<jsp:setProperty name="person" property="*" /><%-- 通过property="*"属性接收所有参数,减少代码量 --%>
</jsp:useBean>
<table align="center" width="400px">
<tr>
<td align="right">
姓 名:
</td>
<td>
<jsp:getProperty property="name" name="person" /><%-- 表单中的属性名称若与 JavaBean 中的不一致,则通过jsp:getProperty param属性指定表单中的属性 --%>
</td>
</tr>
<tr>
<td align="right">
年 龄:
</td>
<td>
<jsp:getProperty property="age" name="person" />
</td>
</tr>
<tr>
<td align="right">
性 别:
</td>
<td>
<jsp:getProperty property="sex" name="person" />
</td>
</tr>
<tr>
<td align="right">
住 址:
</td>
<td>
<jsp:getProperty property="add" name="person" />
</td>
</tr>
</table>
reg.jsp页面中的<jsp:uesBean>标签实例化了JavaBean,然后通过<jsp:setProperty name=”person”property=”*”/>对Person类中的所有属性进行赋值,使用这种方法要求表单中的属性名称与JavaBean中的属性名称一致,这种方法可以减少程序中的代码量。效果图:
表单页index.jsp---
输出页reg.jsp---
最后说明:通过在实体类中,写好private属性后可以通过右键鼠标->Source->Generate Getters and Setters 自动创建你要的set和get方法,当然你最好先手打几次,知道该如何手写set和get方法。