1. 程式人生 > >JavaBean的使用例項、原理

JavaBean的使用例項、原理

最近拿起之前看過的WEB書準備再翻看翻看,到了JavaBean這裡覺得有必要寫一點東西幫助剛接觸的小白。

一、JavaBean的含義

       JavaBean是使用Java語言開發的一個可重用元件,能使Html程式碼與JAVA程式碼分離,並節省開發時間,簡單的說就是一個包含了setter和getter以及至少一個無參構造方法的JAVA類,在框架中或其他方面也管它叫做PO,VO,TO等

例如:

package pojo;

public class Person {
	private String name;
	private int age;
	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;
	}

}

二、JavaBean在jsp中的使用

       寫個簡單的例子很容易明白

       首先一個用一個頁面傳遞引數,如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="getBean.jsp" method="post">
		<table border="1">
			<tr>
				<td>
				姓名:<input type="text" name="name"><br>
				年齡:<input type="text" name="age">
				</td>
			</tr>
			<tr>
				<td>
				<input type="submit" value="提交"> <input type="reset" value="重置">
				</td>
			</tr>
		
		</table>
	</form>
</body>
</html>

然後寫一個演示頁面來封裝引數並輸出,程式碼如下(jsp:useBean以及jsp:setProperty標籤的用法在註釋中給出

<%@ page language="java" contentType="text/html;"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8"); %>
<!-- 使用JAVABEAN id代表例項化物件的名稱 -->
	<jsp:useBean id="person" scope="page" class="pojo.Person"></jsp:useBean>
<!--name與jsp:useBean中宣告的Id一一對應,*代表自動裝配 ,填入屬性值如name則只裝配name的值 -->
	<jsp:setProperty name="person" property="*"></jsp:setProperty>
	<h3><%=person.getName() %></h3>
	<h3><%=person.getAge() %></h3>
	<!-- 可以使用param來指定引數內容非撞到那個屬性內,如下輸出顛倒 -->
	<jsp:setProperty name="person" property="name" param="age"/>
	<jsp:setProperty name="person" property="age" param="name"/>
	<h3><%=person.getName() %></h3>
	<h3><%=person.getAge() %></h3>
</body>
</html>

執行結果:



提交之後


至於我將年齡也寫為數字的原因是,Person這個JavaBean中age是Int型,如果填入String,在演示將指定引數封裝到屬性的時候會出現java.lang.NumberFormatException,即數字型別轉化錯誤。

三、JavaBean的原理

        簡單的說是依靠反射機制完成的,在jsp:useBean中也給出了具體的包.類,如果對這個很生疏,可以去學習JAVASE中的反射部分,後面的很多框架也會用到,打字寫部落格也是很累的,這裡就簡單提一下,沒寫過多不代表不重要啊,想知道更多原理就度娘吧,很多框架都會用到這個,很重要!!!