JSP標籤下面JSP標籤VS表達式語言
<jsp:useBean id=」employee」 class=」employee」/>
<jsp:getProperty name=」employee」 property=」name」/>
另一個用於EL
{employee.name}
假設正確編譯JSP中,怎麼會在2頁不同,如果你有正確填充在一個學生對象在訪問該頁面之前的會話,以及當學生對象爲空時的另一會話。
有人可以解釋這個給我更清楚嗎?
JSP標籤下面JSP標籤VS表達式語言
<jsp:useBean id=」employee」 class=」employee」/>
<jsp:getProperty name=」employee」 property=」name」/>
另一個用於EL
{employee.name}
假設正確編譯JSP中,怎麼會在2頁不同,如果你有正確填充在一個學生對象在訪問該頁面之前的會話,以及當學生對象爲空時的另一會話。
有人可以解釋這個給我更清楚嗎?
JSP標籤:
的
<jsp:useBean>
元件定位或實例化一個JavaBeans 組件。它首先嚐試找到一個 bean的實例。如果該bean不存在,則
<jsp:useBean>
將其從 實例化爲類或序列化模板。要找到或實例化豆,
<jsp:useBean>
採取以下步驟 ,順序如下:
- 試圖找到與您指定的範圍和名稱的bean。
- 使用您指定的名稱定義對象引用變量。
- 如果發現該bean,則將其引用存儲在該變量中。如果您指定了類型,則給出該類型的bean。
- 如果它沒有找到該bean,則從您指定的類中實例化它,並將其引用存儲到新變量中。如果名稱 名稱表示序列化的模板,則該bean將由java.beans.Beans.instantiate的 實例化。
- 如果已經實例化(而不是位於)bean,並且它具有body標籤或元素(介於和 之間),則執行body標籤。
標籤會掃描所有範圍,在page
,request
,session
和application
順序:
<jsp:useBean id="beanInstanceName" scope="page|request|session|application" ... >
EL:
它只能找到(從不創建)屬性在所有相同的範圍內(和相同的訂單)我們都有豆類。請務必使用the right EL keywords來訪問它們。
再回到你的問題,對於這兩種策略,如果你有student
對象範圍設定,都將獲得得當以及處理它的屬性。
否則,useBean
標記會創建一個新對象並將其存儲在指定的範圍內,而EL只會知道對象何時爲null並且不會嘗試訪問其屬性,而只會簡單地打印任何內容。