JSP之JavaBean

來源:互聯網
上載者:User

標籤:動作   表達   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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.