java將xml中的標簽名稱轉為小寫_深入學習Java Web(七): JSTL標簽庫

本文轉自與博客園一杯涼茶的博客.

在之前我們學過在JSP頁面上為了不使用腳本,所以我們有了JSP內置的行為、行為只能提供一小部分的功能,大多數的時候還是會用java腳本,接著就使用了EL表達式,基本上EL表達式看似能滿足我們的要求,它能夠獲取各種對象,各種值,并且還不會拋出NullPointerException之類的錯誤,但是EL表達式功能還是有限,例如不能遍歷集合等,因此為了完善JSP,讓其完全不使用java代碼,就有了jstl標簽庫,使用jstl和EL的配合使用,基本上可以實現所有的功能,顯示數據,遍歷數據等。

一、為什么使用標簽?

JSP是用來顯示數據的,前面我們在JSP中的HTML中嵌入java代碼,與等混在一起,可讀性和可維護性都很差,而且使用java腳本不便于代碼重用,要實現比較復雜的顯示功能,也不方便,而JSP標簽和HTML代碼很類似,使用JSP標簽顯得JSP整潔而干凈,可讀性好,標簽能夠重復使用,所以就像我們上面說的,我們慢慢意識到不足,就自然在一步步改進,從使用JSP行為,使用EL,在使用標簽,都是為了一個目的,讓JSP更加完全,方便,只顯示數據,而不嵌入邏輯代碼。這個涉及到了分層思想,后面說講解到。

二、JSTL標簽庫

JSTL標簽庫中包括很多種類的標簽core、fmt、fn方法庫、sql標簽庫,使用JSTL標簽庫,需要用taglib指令導入JSTL標簽庫

core標簽庫

講解、、、、、、 、、 、、

標簽

out :將指定內容輸出到瀏覽器,默認支持el表達式,

value:輸出的值,可以為EL表達式

default:如果value屬性的值不存在,會輸出default屬性值

excapeXml:如果為true,則會為value中的特殊字符進行轉義,默認為true

2f21311cf57b9d50befaadc1a30f0cb1.png
a81a9948327eef92d3e96236c91f3fd9.png

和標簽

3865182d1a5c81f44bc0191a7a21f38b.png

圖中只介紹set標簽的一種用法,其中var不能接受EL表達式,只能是字符,

target:跟var類似,但是它能夠接受EL表達式,可以是一個對象,一個map等,和var進行互補

property:對象中的屬性名

value:屬性賦值

762478af8981cb1a81629fe04bc2ab81.png

使用哪種set標簽,就看自己的需求了。

標簽

if條件語句

28a0dc7b52e382548e734535049ce845.png

標簽

8343186395a5aa4a5a9a13cda21fcd62.png

標簽

將自定義字符串,按照指定字符進行分割,并遍歷輸出

items:自定義字符串

delims:指定字符

var:遍歷的變量名。

d4ede809d2593a573011cb04011bfb8d.png

標簽

相當于try catch

609d1db53fb2e003e2e9f6e52709bf03.png
67dbf3dc00e1f77bac311b10d83b2f76.png

var:捕捉后的異常對象

標簽

增強的for循環,

格式:

items:需要遍歷的對象

var:用于存放遍歷的每一項內容,存放在page作用域,只能在循環體中使用

1、items為字符串或字符串數組

為字符串,直接輸出,為字符串數組,遍歷輸出

bac3df69cb584ea9a5493c8864a82a85.png
f59545ce8ebe8dc080e26444921b2f11.png

2、items為list集合

aa70607d2d562b57fc9af543c0f2375f.png

3、items為map集合

dbf37e30542d2752a4070ee77e3bc49e.png

4、普通for循環

720dc70d494add06326813976b3c0516.png

begin:從1開始

end:到10結束

step:每次加2

var:循環的變量,

標簽

記得講session的時候,如果cookie禁用了,那么只能將url進行重寫才能讓session繼續生效,而使用的api是response.encodeURL();就是將SESSIONID當作參數帶過來,而url標簽的作用就是實現類似功能

就講解三個屬性

value:要進行重寫的url

var:如果寫了該變量,那么就會將其重寫后的url存入page作用域中,如果scope沒有的話,默認就是page,否則以scope屬性值為準,在作用域范圍內就可以直接拿著這個變量使用了,如下面所展示的。

scope:作用域范圍,默認是page,

49dc9bb5a959269883b87f4684bdf550.png

訪問后點擊超鏈接

沒有關閉cookie,所以不會將SESSIONID寫入url中 。

a0416bbca992de1e1441ad8c3a2619fd.png

標簽

0a8a90d6c3c017bbc75706b3da44f01e.png

標簽

類似于JSP的include行為和include指令,JSTL也提供了include功能的標簽,不過import標簽功能更強大,甚至可以把Internet上的網頁包含進來。

9a70907ae78a19cc1ebd3fdba6c18d44.png
ea678fdf34c2df8727f85a82a7756596.png

fmt標簽庫

是一些輔助性功能標簽,就講解一個把,用的不多,等用到的時候在去詳細學

標簽只有一個屬性,value

設置編碼,

相當于Java中的request.setCharacterEncoding("");

post提交中文參數,使用來設置編碼,就不會出現中文亂碼了。

get提交中文參數,該標簽就會失效,除非到TOMCAT的server.xml中,將URLEncoding設置為UTF-8(默認為ISO-8859-1)。

顯示所有地區的數據格式等等

fn方法庫

提供一些方法,函數,例如字符串查找,截取之類。之所以不叫fn標簽庫而叫fn方法庫,因為與core,fmt標簽格式不一樣,并且必須在el表達式中使用

格式:fn:methodName()的格式,比如,fn:contains()

contains方法判斷是否包含指定的字符串,相當于java里String類的contains方法。

fn:contains(String string1,String string2);

containsIgnoreCase方法,判斷是否包含指定字符串,忽略大小寫

fn:contains(String string1,String string2)

endsWith方法,判斷某字符串是否以指定的參數結尾,

fn:endWith(String string1,String string2);

startsWith方法,判斷某字符串是否以指定參數開始

fn:startsWith(String string1,String string2);

escapeXml方法,是否轉義字符

fn:escapeXml(source);

indexOf方法,查找字符串在另一個字符串中第一次出現的位置

fn:indexOf(String string1,String string2);

split方法,將字符串以指定參數為界分割成多個字符串形成字符串數組

。。

join方法,與split方法相反,將字符串數組以參數為界連接成字符串

length方法,取字符串,數組,集合的長度等等

SQL標簽庫

JSP中直接可以操作數據庫,但是大多數時候我們都不會這樣用。。

XML標簽庫

為了方便地處理XML,

三、總結

重點講解了一下JSTL中的core標簽庫,其實也就是一些控制流程的標簽,沒什么思想,只要會用就行了,以后忘記了就回過頭來查查看,最重要的是思想,這些死東西記錄一下就行了。

上一篇:深入學習Java Web(六) :EL表達式詳解

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258867.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python中*args和**args的不同

上一段代碼,大家感受一下 def test_param(*args): print(args) def test_param2(**args): print(args) test_param(test1,test2) >>>(test1,test2) test_param2(p1test1,p2test2) >>>{p1:test1, p2:test2} python提供了兩種特別的方法來定義函數的…

halcon模板匹配學習(二) 準備模板

如下,我們將介紹匹配的第一個操作:準備模板 初始時刻,我們準備好參考圖像,并對其做一定的處理,然后我們需要從參考圖像中導出模板,也就是將參考圖像裁剪成所謂的模板圖像。獲取模板圖像可以通過設置ROI來完…

揭秘繼承技術之虛函數

虛函數 調用虛函數時函數行為將根據對象所屬類的不同而變化。 父類指針或引用指向子類對象時&#xff0c;可訪問子類重寫方法&#xff08; virtual函數&#xff09;但無法訪問在父類中沒有定義的子類方法和數據成員。 #include <iostream>using namespace std;class Supe…

java中GET方式提交和POST方式提交

java中GET方式提交的示例&#xff1a; /*** 獲取關注列表;* return*/SuppressWarnings("unchecked")public static ArrayList<String> getUserList() {StringBuffer bufferRes new StringBuffer();ArrayList<String> users null;try {URL realUrl new…

基于HALCON的模板匹配方法總結

很早就想總結一下前段時間學習HALCON的心得&#xff0c;但由于其他的事情總是抽不出時間。去年有過一段時間的集中學習&#xff0c;做了許多的練習和實驗&#xff0c;并對基于HDevelop的形狀匹配算法的參數優化進行了研究&#xff0c;寫了一篇《基于HDevelop的形狀匹配算法參數…

js 數組移除_2020前端面試--常見的js面試題

&#xff08;答案持續更新...&#xff09; 1.簡述同步和異步的區別js是一門單線程語言&#xff0c;所謂"單線程"&#xff0c;就是指一次只能完成一件任務。如果有多個任務&#xff0c;就必須排隊&#xff0c;前面一個任務完成&#xff0c;再執行后面一個任務&#xf…

spring-自動加載配置文件\使用屬性文件注入

在上一篇jsf環境搭建的基礎上 , 加入spring框架 , 先看下目錄結構 src/main/resources 這個source folder 放置web項目所需的主要配置,打包時,會自動打包到WEB-INF下 首先看下pom.xml,需要引入一些依賴項: 1 <project xmlns"http://maven.apache.org/POM/4.0.0" x…

pygame碰撞檢測

最近在學Pygame,花一段時間做了一個異常簡陋版的"打磚塊". 這次重點說一下困擾我比較長時間的碰撞檢測(個人太菜..). 按照網上教程比較普遍的方法(也可能是我沒看見別的),碰撞檢測依次計算移動物體與被碰撞物體各個邊之間坐標是否相交.例如下列代碼,檢測小球與窗口的…

2017-5-4 進程

進程&#xff1a;一個應用程序就是一個進程開啟某個進程Process.Start("文件縮寫名");通過絕對路徑開啟某個進程Process p new Process();p.StartInfo new ProcessStartInfo("要打開的程序絕對路徑");p.Start(); 獲取全部開啟的進程&#xff1a;Process.…

很有用的cv牛人的網址和主要貢獻

CV人物1&#xff1a;Jianbo Shi史建波畢業于UC Berkeley&#xff0c;導師是Jitendra Malik。其最有影響力的研究成果&#xff1a;圖像分割。其于2000年在PAMI上多人合作發表"Noramlized cuts and image segmentation"。這是圖像分割領域內最經典的算法。主頁&#xf…

c++分治法求最大最小值實現_程序員:算法導論,分治法、歸并排序,偽代碼和Java實現...

分治法我們首先先介紹分治法。分治法的思想&#xff1a;將原問題分解為幾個規模較小但類似于原問題的子問題&#xff0c;遞歸地求解這些子問題&#xff0c;然后在合并這些子問題的解來解決原問題的解。還是拿撲克牌舉例子&#xff0c;假設桌上有兩堆牌面朝上的牌(牌面朝上&…

菜根譚#82

風來疏竹&#xff0c;風過而竹不留聲&#xff1b;雁度寒潭&#xff0c;雁去而潭不留影&#xff1b;故君子事來而心始現&#xff0c;事去而心隨空。 轉載于:https://www.cnblogs.com/star4knight/p/3604403.html

解讀ASP.NET 5 MVC6系列(9):日志框架

解讀ASP.NET 5 & MVC6系列&#xff08;9&#xff09;&#xff1a;日志框架 原文:解讀ASP.NET 5 & MVC6系列&#xff08;9&#xff09;&#xff1a;日志框架框架介紹 在之前的.NET中&#xff0c;微軟還沒有提供過像樣的日志框架&#xff0c;目前能用的一些框架比如Log4N…

2017第18周四

繼續加班中&#xff0c;很多事不如預期。時間花費很多但效果不成比例。越忙落下的事越多&#xff0c;有時候還需要讓自己靜下來想想&#xff0c;到底有什么是重要的。集中精力放在重要的哪些事&#xff0c;盡自己最大努力即可&#xff0c;盡最大努力即使沒有達到也可以沒有遺憾…

halcon相關的鏈接

論壇、培訓 halcon學習網&#xff1a;http://www.ihalcon.com/鳥叔機器視覺&#xff1a;http://bbs.szvbt.com/forum.php 博客 韓兆新的博客園majunfuLife and Codingzhaojun的博客風韻無聲騎螞蟻上高速的博客小馬_xiaoLV2小新識圖程序園-程序員的世界章柯淵的博客 注&…

[轉]Java8-本地緩存

這里我將會給大家演示用ConcurrentHashMap類和lambda表達式實現一個本地緩存。因為Map有一個新的方法可以在key為Null的時候自動計算一個新的value值。非常完美的實現cache。來看下代碼&#xff1a; public static void main(String[] args) {for (int i 0; i < 10; i)Syst…

python opencv圖像處理程序_Python-OpenCV學習(四):基本圖像處理

轉載請注明出處&#xff1a;danscarlett的博客園 參考資料&#xff1a; 目錄&#xff1a; 讀取 imread 顯示 imshow 存儲 imwrite 縮放 resize 加邊框 copyMakeBorder 裁剪 img[x_start:x_end,y_start:y_end] 1.圖像讀取&#xff1a; cv2.imread(fileName,flagsNone) 函數功能&…

Java進程占用CPU資源過多分析

問題描述&#xff1a; 生產環境下的某臺tomcat7服務器&#xff0c;在剛發布時的時候一切都很正常&#xff0c;在運行一段時間后就出現CPU占用很高的問題&#xff0c;基本上是負載一天比一天高。 問題分析&#xff1a; 1&#xff0c;程序屬于CPU密集型&#xff0c;和開發溝通過&…

分針網——怎么輕松學習JavaScript

js給初學者的印象總是那么的“雜而亂”&#xff0c;相信很多初學者都在找輕松學習js的途徑。我試著總結自己學習多年js的經驗&#xff0c;希望能給后來的學習者探索出一條“輕松學習js之路”。js給人那種感覺的原因多半是因為它如下的特點&#xff1a;A&#xff1a;本身知識很抽…

MATLAB中floor、round、ceil、fix區別

Matlab取整函數有: fix, floor, ceil, round.具體應用方法如下&#xff1a;fix朝零方向取整&#xff0c;如fix(-1.3)-1; fix(1.3)1;floor&#xff0c;顧名思義&#xff0c;就是地板&#xff0c;所以是取比它小的整數&#xff0c;即朝負無窮方向取整&#xff0c;如floor(-1.3)-2…