JSP 表示式語言概述
導讀 | JSP表示式語言(EL)使得訪問儲存在JavaBean中的資料變得非常簡單。JSP EL既可以用來建立算術表示式也可以用來建立邏輯表示式。在JSP EL表示式內可以使用整型數,浮點數,字串,常量true、false,還有null。 |
典型的,當您需要在JSP標籤中指定一個屬性值時,只需要簡單地使用字串即可:
<jsp:setProperty name="box" property="perimeter" value="100"/>
JSP EL允許您指定一個表示式來表示屬性值。一個簡單的表示式語法如下:
${expr}
其中,expr指的是表示式。在JSP EL中通用的操作符是 . 和 {} 。這兩個操作符允許您通過內嵌的JSP物件訪問各種各樣的JavaBean屬性。
舉例來說,上面的標籤可以使用表示式語言改寫成如下形式:
<jsp:setProperty name="box" property="perimeter" value="${2*box.width+2*box.height}"/>
當JSP編譯器在屬性中見到"${}"格式後,它會產生程式碼來計算這個表示式,並且產生一個替代品來代替表示式的值。
您也可以在標籤的模板文字中使用表示式語言。比如標籤簡單地將其主體中的文字插入到JSP輸出中:
<jsp:text><h1>Hello JSP!</h1></jsp:text>
現在,在標籤主體中使用表示式,就像這樣:
<jsp:text>Box Perimeter is: ${2*box.width + 2*box.height}</jsp:text>
在EL表示式中可以使用圓括號來組織子表示式。比如${(1 + 2) * 3}等於9,但是${1 + (2 * 3)} 等於7。
想要停用對EL表示式的評估的話,需要使用page指令將isELIgnored屬性值設為true:
<%@ page isELIgnored ="true|false" %>
EL表示式支援大部分Java所提供的算術和邏輯操作符:
操作符 | 描述 |
---|---|
. | 訪問一個Bean屬性或者一個對映條目 |
[] | 訪問一個陣列或者連結串列的元素 |
( ) | 組織一個子表示式以改變優先順序 |
+ | 加 |
- | 減或負 |
* | 乘 |
/ or div | 除 |
% or mod | 取模 |
== or eq | 測試是否相等 |
!= or ne | 測試是否不等 |
< or lt | 測試是否小於 |
> or gt | 測試是否大於 |
<= or le | 測試是否小於等於 |
>= or ge | 測試是否大於等於 |
&& or and | 測試邏輯與 |
|| or or | 測試邏輯或 |
! or not | 測試取反 |
empty | 測試是否空值 |
JSP EL允許您在表示式中使用函式。這些函式必須被定義在自定義標籤庫中。函式的使用語法如下:
${ns:func(param1, param2, ...)}
ns指的是名稱空間(namespace),func指的是函式的名稱,param1指的是第一個引數,param2指的是第二個引數,以此類推。比如,有函式fn:length,在JSTL庫中定義,可以像下面這樣來獲取一個字串的長度:
${fn:length("Get my length")}
要使用任何標籤庫中的函式,您需要將這些庫安裝在伺服器中,然後使用標籤在JSP檔案中包含這些庫。
JSP EL支援下表列出的隱含物件:
隱含物件 | 描述 |
---|---|
pageScope | page 作用域 |
requestScope | request 作用域 |
sessionScope | session 作用域 |
applicationScope | application 作用域 |
param | Request 物件的引數,字串 |
paramValues | Request物件的引數,字串集合 |
header | HTTP 資訊頭,字串 |
headerValues | HTTP 資訊頭,字串集合 |
initParam | 上下文初始化引數 |
cookie | Cookie值 |
pageContext | 當前頁面的pageContext |
您可以在表示式中使用這些物件,就像使用變數一樣。接下來會給出幾個例子來更好的理解這個概念。
pageContext物件是JSP中pageContext物件的引用。通過pageContext物件,您可以訪問request物件。比如,訪問request物件傳入的查詢字串,就像這樣:
${pageContext.request.queryString}
pageScope,requestScope,sessionScope,applicationScope變數用來訪問儲存在各個作用域層次的變數。
舉例來說,如果您需要顯式訪問在applicationScope層的box變數,可以這樣來訪問:applicationScope.box。
param和paramValues物件用來訪問引數值,通過使用request.getParameter方法和request.getParameterValues方法。
舉例來說,訪問一個名為order的引數,可以這樣使用表示式:${param.order},或者${param["order"]}。
接下來的例子表明瞭如何訪問request中的username引數:
<%@ page import="java.io.*,java.util.*" %><% String title = "Accessing Request Param";%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align="center"><p>${param["username"]}</p></div></body></html>
param物件返回單一的字串,而paramValues物件則返回一個字串陣列。
header和headerValues物件用來訪問資訊頭,通過使用 request.getHeader方法和request.getHeaders方法。
舉例來說,要訪問一個名為user-agent的資訊頭,可以這樣使用表示式:${header.user-agent},或者${header["user-agent"]}。
接下來的例子表明瞭如何訪問user-agent資訊頭:
<%@ page import="java.io.*,java.util.*" %><% String title = "User Agent Example";%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align="center"><p>${header["user-agent"]}</p></div></body></html>
執行結果如下:
header物件返回單一值,而headerValues則返回一個字串陣列。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2790184/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java語言概述Java
- 說說 Spring 表示式語言(SpEL)中的各種表示式型別Spring型別
- 正規表示式及多語言操作指南
- 函數語言程式設計:Lambda 表示式函數程式設計
- 從五大語言看函式和lambda表示式函式
- 程式語言語法:`=`表示賦值,`:`表示型別。賦值型別
- EL 表示式對照 JSP 內建物件表JS物件
- JSp頁面使用El表示式取不到值JS
- Java 函數語言程式設計(二)Lambda表示式Java函數程式設計
- rulex:Rust一種新的正規表示式語言Rust
- 算數表示式求值--c語言課程設計C語言
- JSP 日期處理概述JS
- 自然語言處理(NLP)概述自然語言處理
- Flutter系列之Dart語言概述FlutterDart
- Lambda表示式入門--函數語言程式設計與函式式介面函數程式設計函式
- python函數語言程式設計之yield表示式形式Python函數程式設計
- c語言是如何解析表示式語句"2+3*4;"的?C語言
- 表示式與語句
- Java開發之路—java語言概述Java
- 第二章 C語言概述C語言
- go語言編譯過程概述Go編譯
- Day91.Servlet基本內容① -Servlet、jsp和表示式ServletJS
- Java中的函數語言程式設計(三)lambda表示式Java函數程式設計
- 倉頡程式語言技術指南:巢狀函式、Lambda 表示式、閉包巢狀函式
- SpringMVC中JSP頁面不顯示EL表示式的原因SpringMVCJS
- JSP(JSTL EL表示式 三個指令 六個動作標籤 九個JSP內建物件)JS物件
- 安全是一門語言的藝術|威脅調查分析語言概述
- C_Primer第2章 C語言概述C語言
- Java 語言概述與開發環境(1)Java開發環境
- Java 語言概述與開發環境(2)Java開發環境
- 02-Java語言概述及環境配置Java
- IDEA解決JSP頁面無法使用EL表示式問題IdeaJS
- 正規表示式-語法大全
- Python中表示式與語句Python
- C語言程式設計入門之--第五章C語言基本運算和表示式-part2C語言程式設計
- Go 語言函式Go函式
- 福大pta--C語言--基本資料型別與表示式--判斷題C語言資料型別
- C程式設計語言讀書筆記:型別運算子與表示式C程式程式設計筆記型別