1. 程式人生 > >表達式語言EL簡單學習

表達式語言EL簡單學習

返回 通過 自己的 數據 attribute obj 規範 sta 應用

Jsp2.0最重要的特性就是表達式語言EL。jsp用戶可以用它來訪問應用程序數據。

EL表達式以${開頭並以}結束。

${expresion} ${x+y}

它也常用來連接兩個表達式,取值將從左到右進行,計算結果為String。 加入a+b等於8,c+d等於10,則兩個表達式的計算結果為810 ${a+b}${c+d}

表達式${a+b}and${c+d}的取值結果則為8and10

如果在定制標簽的屬性值中使用EL表達式,那麽表達式的取值結果將會強制變成該屬性需要的類型: <my:tag someAttribute="${expression}"/>

${這樣的字符順序標識的就是一個EL表達式的開頭,如果需要文本${則加個轉義字符 \${

關鍵字:

以下是關鍵字,它們不能用來做標識符:

and eq gt true instanceof

or ne le false empty

not It ge null div mod

[]和.運算符:

EL表達式可以返回 任意 類型的值。如果EL表達式的結果是一個帶有屬性的對象,則可以利用[]或.運算來訪問改屬性。 這兩種運算類似,前者更加規範,後者更加簡潔。

${object["propertyName"]} ${object.propertyName}

但是如果propertyName不是有效的Java變量名,則只能使用[]運算符。 例如下面這個EL表達式就可以用來訪問隱式對象標題中的HTTP標題的host

${header[host]} ${header.host}

但是想要訪問accept-language標題,則只能用[]運算符,因為accept-language不是個合法的Java變量名。

訪問JavaBean:

${beanName["propertyName"]} ${beanName.propertyName}

EL隱式對象:

在jsp頁面中可以利用jsp腳本來fagnwenjsp隱式對象,但是在免腳本的jsp頁面中則不能訪問這些隱形對象。EL允許通過一組它自己的隱式對象來訪問不同的對象。

像pageContext對象,這個隱式對象厲害了,包含了所有的其他jsp隱式對象。${pageContext.request.mehtod} ${pageContext["request"]["method"]} 這樣就可以獲取請求方法。

……

……還有賊多

EL還有很多其他運算符,就一些正常的運算符,但用處比較有限。

表達式語言EL簡單學習