Loading AI tools
来自维基百科,自由的百科全书
Java統一表達式語言(英語:Unified Expression Language,簡稱JUEL)是一種特殊用途的編程語言,主要在Java Web應用程序用於將表達式嵌入到web頁面。Java規範制定者和Java Web領域技術專家小組制定了統一的表達式語言。JUEL最初包含在JSP 2.1規範JSR-245中,後來成為Java EE 7的一部分,改在JSR-341中定義。
表達式語言是以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代碼直接的寫在這些標籤里[1]。有了表達式語言,網頁內容設計者只需明白如何做出適當的Java方法調用,而無需編寫Java代碼。
EL在語法和語義上類似於JavaScript表達式:
object.property
與object['property']
的意義相同EL也解放了程序員,讓程序員訪問object.property
時,不必清楚在訪問值時涉及的細節。[2]
JSP 2.0標準制定期間,JavaServer Faces標準的發布也需要一個表達式語言,但在JSP 2.0規範中定義的表達式語言不足以滿足JSF技術發展的需要。最突出的限制是表達式是被立即執行的。同時,JSF組件還需要一種途徑,來調用服務器端對象的方法。因而一個更強大的語言被制定出來,並具備以下新特性:
新的表達式語言符合JSF的需求,但JSP EL和JSF EL之間並不兼容。統一表達式語言計劃因此啟動。在JSP 2.1中,JSP 2.0和JSF 1.1的表達式語言已經合併成一個統一表達式語言[3](EL 2.1)。
EL 3.0在JSR-341 (頁面存檔備份,存於網際網路檔案館)中從JSP和JSF規範中獨立。新版本添加了一些新的特性,尤其是與Java 8的Streams和Lambda表達式相關的特性。[4]
下面是統一表達式語言的一個簡單的例子:使用JSTL中「c:out」標籤:
<c:out value="${myBean.myField}" />
調用一個參數的方法的表達式:
${myBean.addNewOrder('orderName')}