JavaBean的使用例項、原理
阿新 • • 發佈:2018-11-05
最近拿起之前看過的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中的反射部分,後面的很多框架也會用到,打字寫部落格也是很累的,這裡就簡單提一下,沒寫過多不代表不重要啊,想知道更多原理就度娘吧,很多框架都會用到這個,很重要!!!。