|
在JSP網頁中,您可以設定屬性或JavaBean的作用範圍為page、request、session、
application等,之後就可以藉由屬性或JavaBean的參考名稱,並指定作用範圍來存取屬性或JavaBean,您可以使用
getAttribute()方法來取得屬性,這必須在Scriptlet中使用,而使用存取JavaBean的標籤<jsp:
getProperty>可以避免使用Scriptlet,然而其限制是只能取得簡單的資料,而不能取得如陣列之內的元素資料。 可以使用EL指定屬性或JavaBean的參考名稱來取得屬性或JavaBean的值,先舉一個簡單的例子,首先撰寫一個只有Scriptlet的JSP網頁:
<% 如果您連至上面的網頁,它會在request中設定"username"屬性,然後馬上forward至elTest.jsp,而elTest.jsp中只使用HTML標籤與EL,如下所示:
<html> 所得到的結果網頁如下: <html>
<body> Hello, <b>Justin!! </body> </html> 在這個例子中,您也大致看到Model 1的一個例子,您可以讓某些JSP網頁實現程式邏輯,而在某些JSP網頁中使用EL、JavaBean或是標籤等,實現程式邏輯與視圖分開的機制。 在EL中,可以指定屬性或JavaBean的作用範圍來存取它們,這必須使用到EL隱含物件,這將在之後介紹,如果不指定作用範圍的話,預設是page、 request、session、application的順序來尋找EL中所指定的屬性。 如果存入的屬性物件具有getXXX()之類的方法,則可以使用下面的方式來取得相對應名稱的屬性: Hello, ${ user.name } !! Your id is ${ user.id }.
例如我們先撰寫一個UserBean類別:
package onlyfun.caterpillar; 使用下面這個JSP網頁來測試它:
<jsp:useBean id="userBean" 當然,就上面這個例子而言,也可以簡單的使用<jsp:getProperty>來取得JavaBean的屬性值,然而如果JavaBean 返回的是一個陣列,該如何取得陣列當中的某個元素值呢?使用EL的話,您可以藉由[]運算子來指定所要存取的對象,例如根據索引值來取得返回陣列的某個元 素,為了測試,先簡單的撰寫下面這個測試用的類別:
package onlyfun.caterpillar; 可以藉由下面這個JSP網頁來進行測試:
<jsp:useBean id="arrayTestBean" 最後傳回的結果是: test[0] = Justin test[1] = momor test[2] = Beckyday |