統一表達式語言

Java統一表達式語言(英語:Unified Expression Language,簡稱JUEL)是一種特殊用途的程式語言,主要在Java Web應用程式用於將表達式嵌入到web頁面。Java規範制定者和Java Web領域技術專家小組制定了統一的表達式語言。JUEL最初包含在JSP 2.1規範JSR-245中,後來成為Java EE 7的一部分,改在JSR-341中定義。

基本介紹

  • 中文名:統一表達式語言
  • 外文名:Unified Expression Language
  • 用途:將表達式嵌入到web頁面
  • 領域:計算機軟體
歷史,示例,實現,表達式語言,腳本語言,

歷史

表達式語言是以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表達式:
  • 無需類型轉換;轉換通常是隱式的完成
  • 雙引號和單引號用法相同
  • object.property與object['property']的意義相同
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')}

實現

  • JUEL是一個統一表達式語言2.1版的開源實現。被認為是完整而穩定的,使用Apache許可協定2.0授權。JUEL也適用於非JSP套用。
  • Apache Commons EL是來自於Apache的JSP 2.0 EL解釋器。

表達式語言

表達式語言(Expression Language),或稱EL表達式,簡稱EL,是Java中的一種特殊的通用程式語言,借鑑於JavaScriptXPath。主要作用是在Java Web應用程式嵌入到網頁(如JSP)中,用以訪問頁面的上下文以及不同作用域中的對象,取得對象屬性的值,或執行簡單的運算或判斷操作。EL在得到某個數據時,會自動進行數據類型的轉換。

腳本語言

腳本語言(英語:Scripting language)是為了縮短傳統的“編寫、編譯、連結、運行”(edit-compile-link-run)過程而創建的計算機編程語言。早期的腳本語言經常被稱為批處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程式設計師快速完成程式的編寫工作。而宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。
雖然許多腳本語言都超越了計算機簡單任務自動化的領域,成熟到可以編寫精巧的程式,但仍然還是被稱為腳本。幾乎所有計算機系統的各個層次都有一種腳本語言。包括作業系統層,如計算機遊戲,網路應用程式,字處理文檔,網路軟體等。在許多方面,高級程式語言腳本語言之間互相交叉,二者之間沒有明確的界限。

相關詞條

熱門詞條

聯絡我們