jsp標籤jsp:useBean用法

GodGump發表於2020-10-25

最近看了很多JSP專案的原始碼,發現很多廠子的JSP都用了jsp:useBean,因此查了API。並且實踐總結了一下。
基礎語法:
<jsp:useBean id=“name” class=“package.class” />
如果想只有當第一次例項化Bean時才執行部分程式碼,如果是利用現有的Bean例項則不執行這部分程式碼。可以採用以下語法:
<jsp:useBean id=“name” class="package.class">
要執行的程式碼
</jsp:useBean>
除了id和class外,jsp:useBean還有其他三個屬性,即:scope,type,beanName。
id 命名引用該Bean的變數。如果能夠找到id和scope相同的Bean例項,jsp:useBean動作將使用已有的Bean例項而不是建立新的例項。
class 指定Bean的完整包名。
scope 指定Bean在哪種上下文內可用,可以取下面的四個值之一:page,request,session和application。
預設值是page,表示該Bean只在當前頁面內可用(儲存在當前頁面的PageContext內)。
request表示該Bean在當前的客戶請求內有效(儲存在ServletRequest物件內)。
session表示該Bean對當前HttpSession內的所有頁面都有效。
最後,如果取值application,則表示該Bean對所有具有相同ServletContext的頁面都有效。
下面根據例項進行分享。
這是java那邊的程式碼

package entity;
public class SimpleBean {
  private String message = "No message specified";

  public String getMessage() {
   return(message);
  }

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

這是JSP端的程式碼(宣告並設定例項化後的屬性值,也就是SimpleBean的message屬性):

<HTML>
<HEAD>
<TITLE>jsp:useBean</TITLE>
</HEAD>

<BODY>
<jsp:useBean id="test" class="entity.SimpleBean" />
<jsp:setProperty name="test" 
         property="message" 
         value="Hello WWW" />
<H1>Message: 
<I><jsp:getProperty name="test" property="message" />
</I>
</H1>
             
</BODY>
</HTML>

相關文章