JSP基礎:JavaBean基礎應用

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章