JavaBean遵循著特定的寫法,通常有以下的規(guī)則:
有無參的構(gòu)造函數(shù)成員屬性私有化封裝的屬性如果需要被外所操作,必須編寫public類型的setter、getter方法上面的文字看起來好像很高大上,javaBean其實非常簡單,下面的代碼就是按照特定寫法、規(guī)則編寫的一個JavaBean對象
public class Person { PRivate String username ; private int age; public Person() { } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }JaveBean你可以理解為一輛貨車,在你的java端和web頁面進行數(shù)據(jù)傳遞的載體,你當(dāng)然可以每個變量單獨傳遞,或者使用集合傳遞,但是javabean可以使你的數(shù)據(jù)更有可讀性,方便開發(fā)時明確變量的意義,也使其他閱讀你代碼的人能直接你的意圖
> 如果把bean類與數(shù)據(jù)庫聯(lián)合使用,一張表使用bean類,可以使你的代碼更加簡潔高效,易于理解,現(xiàn)在大多數(shù)框架都會使用這種機制。
<jsp:useBean>
<jsp:useBean>
標簽用于在指定的域范圍內(nèi)查找指定名稱的JavaBean對象:
語法:
<jsp:useBean id="實例化對象的名稱" class="類的全名" scope="保存范圍"/>如果JSP不支持<jsp:useBean>
這個行為,我們要使用Person類是這樣使用的 <%--這里需要導(dǎo)入Person類--%> <%@ page import="domain.Person" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title></title> </head> <body> <% //new出對象 Person person = new Person(); person.setName("zhongfucheng"); System.out.println(person.getName()); %> </body> </html>效果如下<jsp:useBean>
就顯得非常簡潔,不用導(dǎo)包,不用new出對象 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title></title> </head> <body> <jsp:useBean id="person" class="domain.Person" scope="page"/> <% person.setName("zhongfucheng"); System.out.println(person.getName()); %> </body> </html>也可以實現(xiàn)同樣的效果:<jsp:useBean>
這樣的代碼就可以創(chuàng)建出一個對象出來。現(xiàn)在我把JavaBean中無參的構(gòu)造函數(shù)改成有參的,我們看看會出現(xiàn)什么情況,出現(xiàn)異常了! public Person(int age) { this.age = age; }<jsp:useBean id="person" class="domain.Person" scope="page"/>
內(nèi)部原理是這樣子的:<jsp:setProperty>
在語法上可分為4種模式
自動匹配指定屬性指定參數(shù)【很少用】指定內(nèi)容【很少用】當(dāng)我們沒有學(xué)習(xí)到時,我們獲取表單的信息,然后導(dǎo)入到j(luò)avaBean對象中是這樣的一種情況:
這是表單的頁面代碼:
<form action="/zhongfucheng/1.jsp" method="post"> 用戶名:<input type="text" name="username"> 年齡:<input type="text " name="age"> <input type="submit" value="提交"> </form>這是處理表單提交過來數(shù)據(jù)的jsp的代碼 <jsp:useBean id="person" class="domain.Person" scope="page"/> <% int age = Integer.parseInt(request.getParameter("age")); person.setAge(age); System.out.println(person.getAge()); %>這是可以完成的,但是相對來說,比較麻煩!<jsp:getProperty>
語法:
該jsp行為十分簡單,我們來使用一下就知道了。
<%--使用<jsp:getProperty>輸出--%> <jsp:getProperty name="person" property="username"/> <jsp:getProperty name="person" property="age"/>效果:新聞熱點
疑難解答
圖片精選