熬之滴水穿石:JSP--HTML中的JAVA代码(6)
?????????????????????????????????????????????????????????????????? 39--JSTL
在JSP編碼中需考慮的一種方法,因為這種方法可以讓你避免腳本,因為在JSP的標準標記庫里有許多已經定制的標記。在JSP2.0的規范中,要使用JSTL,需要將一個jstl.jar文件copy到相應的web目錄(WEB-INF/LIB)。對于JSP作為view的功能,所以它本身就能完成太多的業務邏輯。在JSTL中我們會看到很多<C:...>這樣以C開頭的前綴,這是一個約定,其簡稱就是單詞core的首寫字符。 像在JSP中處理像循環之類的功能,一般會用到像<c:forEach>,這種方法很適合迭代處理數組和集合。特別能用于for循環,對于集合中的每一個元素,都會一個不落的執行一次標記的體,將每個元素賦給一個變量。當然我們可以用更深的辦法,那就是嵌套<c:forEach>,也就是我們常說的嵌套循環。 <c:if>該標記可以完成對于條件判斷所做的動作,當然我的理解是這樣的if似乎沒有if...else 這樣好用。如果真那么好用的話,就不會有<c:choose>了。當然<c:choose>內是一個組合標記方式,一般由<c:when>和<c:otherwise>,這樣的組合保證了當條件發生時執行相應時間,當不成立時則執行相應的動作。 強大的<c:set>標記,可以設置Map中的值,可以在Map中建立一個新項,也可以創建一個新的請求作用域屬性。set有兩種方法,一種是針對屬性變量的 eg:<c:set var>,一種是針對bean和Map的設置。<c:set>設置中有一些小技巧,在該設置中只能設置其中,不能兩個屬性都設計。scope是的,如果沒有使用這個屬性,則默認為page的作用域。如果var指定的屬性不存在便會創建一個新的屬性,而target是需要放一個能解析為實際對象表達式的,用來指定具體的屬性對象。<c:remove>則是針對一個set標記來刪除一個變量。 <c:import>的方法相當于上一個章節說起的include,是一種包含的方法,它是在請求時將URL屬性值指定的內容增加在當前頁面,和<jsp:include>很相似,但是<c:import>標記的屬性是使用的url。它強大的地方在于可以應用到Web應用之外去,前面說的include和<jsp:include>都只能包含在當前的頁面,但<c:import>則可以容器之外的東東搞過來,也就是如果是負載均衡集群配置中<c:import>很有用武之地。像很多網站,圖片都存儲在圖片服務器上的,類似于這種情況<c:import>大有作為。 最后講講一個也是比較實用的功能<c:url>,這個功能我們需要提到在Servlet單元中說過的當瀏覽器不支持cookie時,需要對url重寫加上一個sessionId的尾巴,是的,<c:url>就可以搞這個!繼續!我們在JSP頁面里調用一個風險的標記,當出現異常時可以恢復,實現像try..catch的一樣。是的,在JSTL中確實有這樣的標記<c:catch>來完成的。在JSP處理異常,也有一些套路和方法的。例如:我們根據http響應的結果設定跳轉的界面,而這個時候我們可以在部署文件中用<error-page>和<error-code>、<location>,當響應相關的代碼時就調用該錯誤界面。在try..catch中,我們知道catch的就是異常對象。但對于Web界面處理的話,需要把異常設置為一個屬性。而使用該屬性就是用var,那該值來取名。假設設定var="bException",那么用EL表達式就可以用bException.message來調用了。當我們使用該標簽處理異常時通常會遇到兩種情況,一種是:如果我們使用var屬性,會把異常對象賦予這個var的變量,然后流程直接跳轉catch中。
在JSTL中,我們能用的通常有以C:開頭的核心庫。我們之前說的都是與之相關的核心庫。其實還有以fmt開頭的格式化庫,還有SQL的數據訪問庫。還有以XML開頭的XML核心庫。
(未完待續.........)?轉載于:https://www.cnblogs.com/dyllove98/p/3148378.html
總結
以上是生活随笔為你收集整理的熬之滴水穿石:JSP--HTML中的JAVA代码(6)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轻量级前端MVVM框架avalon -
- 下一篇: JAVA构造器的实际使用