表達式語言EL簡單學習
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簡單學習