如何使用動作在 JSP 中?


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

您可以將 jsp:setProperty 放在 jsp:useBean 元素之後,但在其外部,如下所示:

<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,但允許兩者都不使用。

示例

讓我們定義一個測試 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 並設定/獲取一個簡單的字串引數:

<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,它將顯示以下結果:

在 JSP 中使用 JavaBeans

Got message....
Hello JSP...

更新於: 2019-07-30

1K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告