網(wǎng)站企業(yè)建設(shè)方案seo外鏈要做些什么
目錄
為什么會有JSTL?
什么是JSTL?
如何理解JSTL標(biāo)準(zhǔn)標(biāo)簽庫呢?
如何使用JSTL?
第一步:引入JSTL標(biāo)簽庫對應(yīng)的jar包。
第二步:在JSP中引入要使用標(biāo)簽庫。(使用taglib指令引入標(biāo)簽庫。)
第三步:在需要使用標(biāo)簽的位置使用即可。表面使用的是標(biāo)簽,底層實(shí)際上還是java程序。
JSTL的本質(zhì)是什么?
JSTL原理剖析
源碼解析:配置文件tld解析
JSTL的常用標(biāo)簽:
為什么會有JSTL?
????????在此之前我們?yōu)榱耸沟肑SP中的java代碼更加簡潔,我們使用了EL表達(dá)式,EL表達(dá)式的主要作用是從域中取數(shù)據(jù),但是有時候我們在JSP中也會書寫其他Java代碼,比如if判斷啊或者for循環(huán)等等,那么這些代碼的簡化是無法用EL表達(dá)式完成的,所以我們就引入了JSTL,Java標(biāo)準(zhǔn)標(biāo)簽庫;
? ? ? ? 從上面的概念引入中我們可以得出,JSTL的作用:簡化JSP中的java代碼;
什么是JSTL?
-
Java Standard Tag Lib(Java標(biāo)準(zhǔn)的標(biāo)簽庫)
-
JSTL標(biāo)簽庫通常結(jié)合EL表達(dá)式一起使用。目的是讓JSP中的java代碼消失。
-
標(biāo)簽是寫在JSP當(dāng)中的,但實(shí)際上最終還是要執(zhí)行對應(yīng)的java程序。(java程序在jar包當(dāng)中。)
如何理解JSTL標(biāo)準(zhǔn)標(biāo)簽庫呢?
? ? ? ? 我們之前接觸標(biāo)簽是在學(xué)習(xí)了HTML超文本標(biāo)記語言是接觸的,呢么標(biāo)簽是如何創(chuàng)造的呢?為什么會使用標(biāo)簽?zāi)?#xff1f;我們之前學(xué)過將Java中常用的代碼封裝成一個方法,這樣是為了在使用到這個方法的時候能避免重復(fù)書寫一些復(fù)雜的代碼,標(biāo)簽也是一樣,你可以認(rèn)為標(biāo)簽就是一個方法名,他的底層還是Java代碼,知識在使用時為了簡便,我們將這些重復(fù)的代碼封裝成了一個一個的標(biāo)簽;標(biāo)簽的底層還是Java代碼,只是為了讓我們程序員減少代碼書寫量而創(chuàng)建的一種簡便用法;
如何使用JSTL?
-
第一步:引入JSTL標(biāo)簽庫對應(yīng)的jar包。
-
在IDEA當(dāng)中怎么引入?
-
在WEB-INF下新建lib目錄,然后將jar包拷貝到lib當(dāng)中。然后將其“Add Lib...”
-
一定是要和mysql的數(shù)據(jù)庫驅(qū)動一樣,都是放在WEB-INF/lib目錄下的。
-
什么時候需要將jar包放到WEB-INF/lib目錄下?如果這個jar是tomcat服務(wù)器沒有的。
-
-
tomcat10之后引入的jar包是:
-
jakarta.servlet.jsp.jstl-2.0.0.jar
-
jakarta.servlet.jsp.jstl-api-2.0.0.jar
-
-
第二步:在JSP中引入要使用標(biāo)簽庫。(使用taglib指令引入標(biāo)簽庫。)
-
JSTL提供了很多種標(biāo)簽,你要引入哪個標(biāo)簽????重點(diǎn)掌握核心標(biāo)簽庫。
-
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!--這個就是核心標(biāo)簽庫。--> <!--prefix="這里隨便起一個名字就行了,核心標(biāo)簽庫,工作中常被默認(rèn)的叫做c,你隨意。"-->
-
-
第三步:在需要使用標(biāo)簽的位置使用即可。表面使用的是標(biāo)簽,底層實(shí)際上還是java程序。
-
JSTL的本質(zhì)是什么?
? ? ? ? 上面已經(jīng)說的很清楚了,JSTL的本質(zhì)是Java代碼,JSTL只是更好的將Java代碼封裝成了一個一個簡便的標(biāo)簽;
JSTL原理剖析
-
<%@taglib prefix="c" uri="Oracle Java Technologies | Oracle" %> 以上uri后面的路徑實(shí)際上指向了一個xxx.tld文件。 tld文件實(shí)際上是一個xml配置文件。 在tld文件中描述了“標(biāo)簽”和“java類”之間的關(guān)系。 以上核心標(biāo)簽庫對應(yīng)的tld文件是:c.tld文件。它在哪里。 在jakarta.servlet.jsp.jstl-2.0.0.jar里面META-INF目錄下,有一個c.tld文件。
源碼解析:配置文件tld解析
<tag><description>對該標(biāo)簽的描述</description><name>catch</name> 標(biāo)簽的名字<tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class> 標(biāo)簽對應(yīng)的java類。<body-content>JSP</body-content> 標(biāo)簽體當(dāng)中可以出現(xiàn)的內(nèi)容,如果是JSP,就表示標(biāo)簽體中可以出現(xiàn)符合JSP所有語法的代碼。例如EL表達(dá)式。<attribute><description>對這個屬性的描述</description><name>var</name> 屬性名<required>false</required> false表示該屬性不是必須的。true表示該屬性是必須的。<rtexprvalue>false</rtexprvalue> 這個描述說明了該屬性是否支持EL表達(dá)式。false表示不支持。true表示支持EL表達(dá)式。</attribute></tag><c:catch var="">JSP....
</c:catch>
JSTL的常用標(biāo)簽:
jstl中的核心標(biāo)簽庫core當(dāng)中有哪些常用的標(biāo)簽?zāi)?#xff1f;
-
c:if
<c:if test="boolean類型,支持EL表達(dá)式"></c: if>
-
c:forEach
-
<c:forEach items="集合,支持EL表達(dá)式" var="集合中的元素" varStatus="元素狀態(tài)對象"> ${元素狀態(tài)對象.count} </c: forEach>
-
<c:forEach var="i" begin="1" end="10" step="2"> ${i} </c: forEach>
-
-
c:choose c:when c:otherwise
<c:choose><c:when test="${param.age < 18}">青少年</c:when><c:when test="${param.age < 35}">青年</c:when><c:when test="${param.age < 55}">中年</c:when><c:otherwise>老年</c:otherwise>
</c:choose>