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方法。