Struts2:JSTL、EL和OGNL

JSTL:JSP Standard Tag Libraryb,全稱:jsp標籤庫
通俗的說,就是嵌在jsp頁面中的一些標籤好比jsp中默認有<jsp:include page="index.jsp"/>
這裏的<jsp:include>
再好比,<jsp:forward page="index.jsp">
這裏的<jsp:forward>也是一個標籤咱們曾經對標籤使用比較多的場景:在Struts1.2的界面的展示上struts1.2提供了幾類比較經常使用的標籤,好比<html:text>,<html:form>
同類的還有bean標籤,logic標籤等等EL表達式,英文全稱Expression Language。爲了讓JSP中不出現任何的Java代碼,可使用JSTL標準標籤庫,一般JSTL須要和EL表達式一塊兒使用。
EL表達式是在JSP裏出現的,Struts、JSF等框架也可使用EL表達式。不過Struts 2.x改用更爲強大的OGNL表達式
JSTL 1.0 發佈於 2002 年 6 月,由四個定製標記庫( core 、 format 、 xml 和 sql )和一對通用標記庫驗證器( ScriptFreeTLV 和 PermittedTaglibsTLV )組成。 core 標記庫提供了定製操做,經過限制了做用域的變量管理數據,以及執行頁面內容的迭代和條件操做。它還提供了用來生成和操做 URL 的標記。顧名思義, format 標記庫定義了用來格式化數據(尤爲是數字和日期)的操做。它還支持使用本地化資源束進行 JSP 頁面的國際化。 xml 庫包含一些標記,這些標記用來操做經過 XML 表示的數據,而 sql 庫定義了用來查詢關係數據庫的操做。
OGNL全稱Object-Graph Navigation Language,是一種用於讀取和設置java對象屬性的描述語言。WebOGNL是一種構建以servlet爲基礎的組件化應用的web表現層框架,它的模板語言創建在OGNL表達式的基礎上,具備別的web層框架不能匹敵的適應性。 html

OGNL可讓咱們用很是簡單的表達式訪問對象層,例如,當前環境的根對象爲user1,則表達式person.address[0].province
能夠訪問到user1的person屬性的第一個address的province屬性。 java

這種功能是模板語言的一個重要補充,象jsp2.0,velocity,jelly等等,都有相似的功能,可是ognl比它們完善得多,並且以一個獨立的lib出現,方便咱們構建本身的框架。 web

webwork2中使用OGNL取代原來的EL來作界面數據綁定,所謂界面數據綁定,也就是把界面元素(例如一個textfield,hidden)和對象層某個類的某個屬性綁定在一塊兒,修改和顯示自動同步。 sql

和struts的formbean相比,這樣作的好處很是明顯:在webwork中不須要爲每一個頁面專門寫formbean,能夠直接利用對象層的對象。例如在對象設計中,咱們的User和Person是分開的,而一個註冊用戶界面須要填寫二者的內容,在webwork中,就能夠保持後臺的對象結構,把屬於用戶屬性的界面元素用user.person.xxx綁定,把屬於帳號屬性的界面元素用user.xxx綁定 數據庫

相關文章
相關標籤/搜索