jsp:useBean用法

鴨脖發表於2013-06-03

jsp:useBean動作最簡單的語法為:

<jsp:useBean id="guessBiz" class="biz.GuessBiz" scope="session" />

 這行程式碼的含義是:“建立一個由class屬性指定的類的例項,然後把它繫結到其名字由id屬性給出的變數上”。

此時,jsp:useBean動作只有在不存在同樣id和scope的Bean時才建立新的物件例項。

我們既可以通過jsp:setProperty動作的value屬性直接提供一個值,也可以在Scriptlet中利用id屬性所命名的物件變數,通過呼叫該物件的方法顯式地修改其屬性(比如:<% guessBiz.setName("name"); %>),也可以通過param屬性宣告Bean的屬性值來自指定的請求引數,還可以列出Bean屬性表明它的值應該來自請求引數中的同名變數。

 

屬性用法:  
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的頁面都有效。 
scope之所以很重要,是因為jsp:useBean只有在不存在具有相同id和scope的物件時才會例項化新的物件;如果已有id和scope都相同的物件則直接使用已有的物件,此時jsp:useBean開始標記和結束標記之間的任何內容都將被忽略。 

type  指定引用該物件的變數的型別,它必須是Bean類的名字、超類名字、該類所實現的介面名字之一。請記住變數的名字是由id屬性指定的。  
beanName  指定Bean的名字。如果提供了type屬性和beanName屬性,允許省略class屬性。

 

例子:這是一個猜數的例子

 input.jsp

程式碼

 

 

web.xml

 

程式碼

 

 

ActionServlet.java

 

程式碼

相關文章