歷史
表達式語言是以
JSTL(JavaServer Pages Standard Tag Library,JSP標準標籤庫)的一部分出現的,原本被叫做SPEL(Simplest Possible Expression Language,簡單的表達式語言),後來被稱作EL(Expression Language,表達式語言)。它是一種
腳本語言,允許通過
JSP訪問
Java組件(
JavaBeans)。自JSP 2.0以來,表達式語言已經被內置到JSP標籤中,用於從JSP中分離Java代碼,並允許(比用Java代碼)更方便訪問
Java組件。
經過發展,表達式語言包含了更多的高級功能,並被包括在JSP 2.0規範內。對於有很少或幾乎沒有Java知識的網頁內容設計者而言,腳本的編寫變得更簡單了。表達式語言使JSP變成了真正意義上的腳本語言。在表達式語言出現之前,JSP包含了一些特定的標籤,Java代碼直接的寫在這些標籤里。有了表達式語言,網頁內容設計者只需明白如何做出適當的Java方法調用,而無需編寫Java代碼。
EL在語法和語義上類似於JavaScript表達式:
EL也解放了程式設計師,讓程式設計師訪問object.property時,不必清楚在訪問值時涉及的細節。
JSP 2.0標準制定期間,
JavaServer Faces標準的發布也需要一個表達式語言,但在JSP 2.0規範中定義的表達式語言不足以滿足JSF技術發展的需要。最突出的限制是表達式是被立即執行的。同時,JSF組件還需要一種途徑,來調用伺服器端對象的
方法。因而一個更強大的語言被制定出來,並具備以下新特性:
延期執行的表達式
表達式既可以設定數據,也可以獲得數據
可以調用方法的方法表達式
新的表達式語言符合JSF的需求,但JSP EL和JSF EL之間並不兼容。統一表達式語言計畫因此啟動。在JSP 2.1中,JSP 2.0和JSF 1.1的表達式語言已經合併成一個統一表達式語言(EL 2.1)。
EL 3.0在JSR-341中從JSP和JSF規範中獨立。新版本添加了一些新的特性,尤其是與Java 8的Streams和
Lambda表達式相關的特性。
示例
下面是統一表達式語言的一個簡單的例子:使用JSTL中“c:out”標籤:
<c:out value="${myBean.myField}" />
調用一個參數的方法的表達式:
${myBean.addNewOrder('orderName')}
實現
表達式語言
表達式語言(Expression Language),或稱
EL表達式,簡稱
EL,是
Java中的一種特殊的通用程式語言,借鑑於
JavaScript和
XPath。主要作用是在Java Web應用程式嵌入到網頁(如
JSP)中,用以訪問頁面的上下文以及不同作用域中的
對象,取得對象屬性的值,或執行簡單的運算或判斷操作。EL在得到某個
數據時,會自動進行
數據類型的轉換。
腳本語言
腳本語言(英語:Scripting language)是為了縮短傳統的“編寫、編譯、連結、運行”(edit-compile-link-run)過程而創建的計算機
編程語言。早期的腳本語言經常被稱為
批處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓
程式設計師快速完成
程式的編寫工作。而
宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。
雖然許多腳本語言都超越了計算機簡單任務自動化的領域,成熟到可以編寫精巧的程式,但仍然還是被稱為腳本。幾乎所有計算機系統的各個層次都有一種腳本語言。包括作業系統層,如
計算機遊戲,網路應用程式,字處理文檔,網路
軟體等。在許多方面,高級
程式語言和
腳本語言之間互相交叉,二者之間沒有明確的界限。