表達式語言(Expression Language),或稱EL表達式,簡稱EL,是Java中的一種特殊的通用編程語言,借鑑於JavaScript和XPath。主要作用是在Java Web應用程序嵌入到網頁(如JSP)中,用以訪問頁面的上下文以及不同作用域中的對象 ,取得對象屬性的值,或執行簡單的運算或判斷操作。EL在得到某個數據時,會自動進行數據類型的轉換。
以“${”開始,以“}”作為結束:
${EL表達式}
獲取某對象的值可以直接寫入對象的名稱,如獲取對象名為“user”的對象的值:
${user}
獲取某對象的屬性的值使用點操作符(“.”操作符),如獲取對象user的name屬性和age屬性的值的語法如下:
${user.name}
${user.age}
示例:往四大作用域中存入一些數據,通過以前的Java代碼來取出數據
然後我們通過EL表達式取出作用域中的數據:
從中可以看出,當我們沒有指定作用域的時候,數據會依此從page--request--session--application中取數據,當取到數據時候,就不會繼續查找。所以name.name 取出的是page存入的數據“小李”
當然我們也不需要通過get方式取出對象。這種方式簡化代碼。
關於EL表達式的內置對象:
關於EL執行表達式:
示例如下:
JSTL介紹:
JSP標準標籤庫(JSP Standard Tag Library)是Java EE網絡應用程序開發平臺的組成部分。它在JSP規範的基礎上,擴充了一個JSP的標籤庫來完成一些通用任務,比如XML數據處理、條件執行、數據庫訪問、循環和國際化。
使用之前先介紹一下在idea中配置JSTL
複製解壓文件 lib文件夾中的jar包到IDEA的項目中:
打開idea設置界面:找到Schemas and DTDs,選擇綠色加號
在URI上填寫這個地址,然後打開explorer 找到剛才解壓的文件
選擇c.tld
然後在jsp頁面中導入jsp標籤庫:
到這裡就完成JSTL的配置工作。
關於c:if標籤示例:
servlet用來接收參數然後進行轉發
頁面獲取參數值進行邏輯判斷:
測試:
需注意的是,當我們使用轉發的時候是可以拿到request域中的值
當我們使用重定向的時候,就獲取不到
這是因為轉發只在服務器內部跳轉,攜帶了上一次請求的的request和response,客戶端只做一次請求。重定向則是服務器響應的是一個網址,客戶端再次去請求一個網站,所以整個過程中,存在兩個req res 而我們的值則是保存在第一個req域中,所以無法獲取。
關於c:forEach標籤示例:
事先往list集合存入若干個對象,並放入作用域中:
使用C:forEach遍歷集合:兩種方式
測試:
閱讀更多 十二說IT 的文章