標籤:動作 表達 str center 16px string font 寫法 取值
一、定義
1 JavaBean是一個遵循特定寫法的Java類,它通常具有如下特點:
- 這個Java類必須具有一個無參的建構函式
- 屬性必須私人化。
- 私人化的屬性必須通過public類型的方法暴露給其它程式即要有getset()方法,並且方法的命名也必須遵守一定的命名規範。
二、在java中使用javabean
JSP技術提供了三個關於JavaBean組件的動作元素,即JSP標籤,它們分別為:
- <jsp:useBean>標籤:用於在JSP頁面中尋找或執行個體化一個JavaBean組件。
- <jsp:setProperty>標籤:用於在JSP頁面中設定一個JavaBean組件的屬性。
- <jsp:getProperty>標籤:用於在JSP頁面中擷取一個JavaBean組件的屬性。
2.1 <jsp:useBean>標籤
<jsp:useBean>標籤用於在指定的域範圍內尋找指定名稱的JavaBean對象,如果存在則直接返回該JavaBean對象的引用,如果不存在則執行個體化一個新的JavaBean對象並將它以指定的名稱儲存到指定的域範圍中。
常用文法:
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
"id"屬性用於指定JavaBean執行個體對象的引用名稱和其儲存在域範圍中的名稱。
"class"屬性用於指定JavaBean的完整類名(即必須帶有包名)。
"scope"屬性用於指定JavaBean執行個體對象所儲存的域範圍,其取值只能是page、request、session和application等四個值中的一個,其預設值是page。
1 <jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>2 <%3 my.setName("李四");4 my.setSex(‘男‘);5 session.setAttribute("my", my); //引用儲存到session中6 7 %>8 9 <jsp:forward page="index1.jsp"></jsp:forward>
index1.jsp:
1 <body> 2 <%3 Person p=(Person)session.getAttribute("my"); //拿到引用,此時引用是//object類型的需要強制轉換4 out.print(p.getName());5 out.print(p.getSex());6 %>7 </body>
2.2 <jsp:setProperty>標籤
<jsp:setProperty>標籤用於設定和訪問JavaBean對象的屬性。
文法格式一:
<jsp:setProperty name="beanName" property="propertyName" value="string字串"/>
文法格式二:
<jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />
文法格式三:
<jsp:setProperty name="beanName" property="propertyName" param="parameterName"/>
文法格式四:
<jsp:setProperty name="beanName" property= "*" />
name屬性用於指定JavaBean對象的名稱。
property屬性用於指定JavaBean執行個體對象的屬性名稱。
value屬性用於指定JavaBean對象的某個屬性的值,value的值可以是字串,也可以是運算式。為字串時,該值會自動轉化為JavaBean屬性相應的類型,如果value的值是一個運算式,那麼該運算式的計算結果必須與所要設定的JavaBean屬性的類型一致。
param屬性用於將JavaBean執行個體對象的某個屬性值設定為一個請求參數值,該屬性值同樣會自動轉換成要設定的JavaBean屬性的類型。
2.2.1 使用jsp:setProperty標籤設定person對象的屬性值
1 <jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean> 2 3 <jsp:setProperty property="name" name="my" value="王五"/> 4 <jsp:setProperty property="sex" name="my" value="n"/> 5 6 <% 7 session.setAttribute("my", my); 8 %> 9 10 <jsp:forward page="index1.jsp"></jsp:forward>
//建立一個Person的對象my之後,用《jsp:setProperty》標籤給對象name="my" 的property="name"屬性設定值為value="王五";
2.2.2 使用請求參數為bean的屬性賦值
<jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>
<jsp:setProperty property="name" name="my" param="name"/>
<%
session.setAttribute("my", my);
%>
<jsp:forward page="index1.jsp"></jsp:forward>
index1.jsp:
1 <%2 Person p=(Person)session.getAttribute("my");3 out.print(p.getName());4 out.print(p.getSex());5 %>
我們在瀏覽器輸入 http://localhost:8080/jspprojec/index.jsp?name=zjamgsm 就會擷取name的值賦給my對象的name屬性。
2.2.3 使用所有請求參數為bean的屬性賦值
1 <jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>2 3 <jsp:setProperty property="*" name="my" />4 5 <%6 session.setAttribute("my", my);7 %>8 9 <jsp:forward page="index1.jsp"></jsp:forward>
index1.jsp:
1 <%2 Person p=(Person)session.getAttribute("my");3 out.print(p.getName());4 out.print(p.getSex());5 %>
我們在瀏覽器輸入 http://localhost:8080/jspprojec/index.jsp?name=zjamgsm&sex=f 就會從地址欄裡擷取所有屬性.
2.3 <jsp:getProperty>標籤
<jsp:getProperty>標籤用於讀取JavaBean對象的屬性,也就是調用JavaBean對象的getter方法,然後將讀取的屬性值轉換成字串後插入進輸出的響應本文中。
文法:
<jsp:getProperty name="beanInstanceName" property="PropertyName" />
name屬性用於指定JavaBean執行個體對象的名稱,其值應與<jsp:useBean>標籤的id屬性值相同。
property屬性用於指定JavaBean執行個體對象的屬性名稱。
如果一個JavaBean執行個體對象的某個屬性的值為null,那麼,使用<jsp:getProperty>標籤輸出該屬性的結果將是一個內容為“null”的字串。
1 <jsp:useBean id="my" class="jspprojec.Person" scope="request"></jsp:useBean>2 <jsp:setProperty property="name" name="my" value="zhangsanfeng"/>3 <jsp:getProperty property="name" name="my"/>
JSP之JavaBean