我需要了解如何在JSP頁面中使用Bean並更新其屬性。請分享一個例子。


useBean 動作非常通用。它首先使用id和scope變數搜尋現有的物件。如果找不到物件,則嘗試建立指定的物件。

載入Bean最簡單的方法如下:

<jsp:useBean id = "name" class = "package.class" />

載入Bean類後,可以使用jsp:setPropertyjsp:getProperty動作來修改和檢索Bean屬性。

下表列出了與useBean動作相關的屬性:

序號屬性及描述
1class
指定Bean的完整包名。
2type
指定將引用該物件的變數的型別。
3beanName
給出java.beans.Beans類的instantiate()方法指定的Bean名稱。

在給出與這些動作相關的有效示例之前,讓我們討論一下jsp:setPropertyjsp:getProperty動作。

<jsp:setProperty> 動作

setProperty動作設定Bean的屬性。在執行此動作之前,必須先定義Bean。使用setProperty動作有兩種基本方法:

您可以像下面這樣在jsp:useBean元素之後但外部使用jsp:setProperty

<jsp:useBean id = "myName" ... />
   ...
<jsp:setProperty name = "myName" property = "someProperty" .../>

在這種情況下,無論是否例項化了新的Bean或找到了現有的Bean,都會執行jsp:setProperty

jsp:setProperty出現的第二個上下文是在jsp:useBean元素的主體內部,如下所示:

<jsp:useBean id = "myName" ... >
   ...
   <jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>

在這裡,只有在例項化新物件時才執行jsp:setProperty,而不是在找到現有物件時。

下表列出了與setProperty動作相關的屬性:

序號屬性及描述
1name
指定將設定其屬性的Bean。必須先定義Bean。
2property
指示要設定的屬性。“*”表示所有名稱與Bean屬性名稱匹配的請求引數都將傳遞給相應的setter方法。
3value
要分配給給定屬性的值。如果引數的值為null或引數不存在,則忽略setProperty動作。
4param
param屬性是要接收屬性值的請求引數的名稱。不能同時使用value和param,但允許兩者都不使用。

<jsp:getProperty> 動作

getProperty動作用於檢索給定屬性的值,將其轉換為字串,最後將其插入輸出。

getProperty動作只有兩個屬性,這兩個屬性都是必需的。getProperty動作的語法如下:

<jsp:useBean id = "myName" ... />
   ...
<jsp:getProperty name = "myName" property = "someProperty" .../>

下表列出了與getProperty動作相關的必需屬性:

序號屬性及描述
1name
要檢索其屬性的Bean的名稱。必須先定義Bean。
2property
property屬性是要檢索的Bean屬性的名稱。

示例

讓我們定義一個測試Bean,它將在我們的示例中進一步使用:

/* File: TestBean.java */
package action;

public class TestBean {
   private String message = "No message specified";

   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

將上述程式碼編譯成生成的TestBean.class檔案,並確保您將TestBean.class複製到C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action資料夾中,並且CLASSPATH變數也應設定為該資料夾:

現在在main.jsp檔案中使用以下程式碼。這將載入Bean並設定/獲取一個簡單的String引數:

<html>
   <head>
      <title>Using JavaBeans in JSP</title>
   </head>
   <body>
      <center>
         <h2>Using JavaBeans in JSP</h2>
         <jsp:useBean id = "test" class = "action.TestBean" />
         <jsp:setProperty name = "test" property = "message"
          value = "Hello JSP..." />

         <p>Got message....</p>
         <jsp:getProperty name = "test" property = "message" />
      </center>
   </body>
</html>

現在讓我們嘗試訪問main.jsp,它將顯示以下結果:

Using JavaBeans in JSP
Got message....
Hello JSP...

更新於:2019-07-30

593 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.