jsp之jstl

來源:互聯網
上載者:User

標籤:orm   date類   jstl   格式化數字   attribute   成員   first   方便   step   

JSTL概述:
apache的東西,依賴EL;
使用jstl需要匯入jstl1.2.jar
四大庫:
core  :核心庫
fmt :格式化日期、數字
sql :過時
xml: 過時
2、匯入標籤庫
* jar包
*在jsp頁面中,<%@taglib prefix="首碼" uri="路徑"%>
======================================================
core 標籤庫常用標籤(c標籤)
1、out和set
<c:out value="aaa"/>
<c:out value="${aaa}"/>
<c:out value="${aaa}" default="bbb"/>
<c:out value="${aaa}" default="bbb" escapeXml="true"/>  預設值為true表示轉義;
<c:set var="name" value="value" scope="request"/>
var:變數名  value:變數值   scope:設定域page/request/session/application如果不申明預設為page
2、remove
<c:remove var="a"/>
scope:如果不寫預設刪除所有域的變數名為a的值,如果指定就只刪除指定的;
3、url
value :指定一個路徑!他會在路徑前面自動添加項目名。
<c:url value="/index.jsp"> 它會輸出/day13_1/index.jsp
子標籤:<c:param> 用來給url後面添加參數 例如:
    <c:url value="/index.jsp">
        <c:param name="username" value="zhangsan"/>
    </c:url>
結果為:/day13_1/index.jsp?username=%ED%2c%d3%2D%4F 會進行url編碼

var:一旦添加這個屬性,url不會輸出到頁面而是添加到域中進行儲存;
scope:與var一起使用,用來儲存url的指定域
4、if
<c:if test="boolean值">  當test值為true時,執行下面語句
<c:set var="a" value="hello" />
<c:if test="${not empty a}">
    <c:if>    
5、choose
<c:choose>
    <c:when tedt="">...</c:when>
    <c:when tedt="">...</c:when>
    <c:when tedt="">...</c:when>
    <c:otherwise>.....</c:otherwise>
</c:choose>
6、forEach
它用來迴圈遍曆數組和集合,它還可以來計數方式的迴圈!
***計數方式:
<c:forEach var="i" begin="1" end="10" step="2">  相當於i>=1 i<=10  step="步長"
${i}<br/>
</c:forEach>
var = 迴圈變數
begin=設定迴圈變數從幾開始
end=設定迴圈變數到幾結束
step=設定步長   step預設為1  
***遍曆數組和集合:
1、建立數組
<%
String[] str = {"name","value"}
request.setAttribute("arr",str);
%>
2、遍曆數組
<c:forEach items="${str}" var="s">
    ${s}<br/>
</c:forEach>
items:要遍曆的數組或者集合
var :定義遍曆的每個成員
forEach迴圈狀態:
可以使用varStatus來建立迴圈狀態變數!
count:當前已遍曆元素個數
last:當前迴圈是否為最後一圈
first:是否為第一個元素,第一圈
index:當前元素下標
current:當前對象
<%
    ArrayList<String>list= new ArrayList<String>();
    list.add("one");
    list.add("two");
    list.add("three");
    pageContext.setAttribute("list",list);
%>
<c:forEach items="${list}" var="ele" varStatus="vs">
${vs.index}${vs.count}${vs.first}${vs.last}${vs.current}
</c:forEach>
***fmt庫:
格式化庫
先匯入/jsp/jstl/fmt標籤庫
1、格式化日期
<%
    Date date = new Date();
    request.setAttribute("date",date);
%>
<fmt:formatDate value="${requestScope.date}" pattern="YYYY-MM-DD  HH:MM:SS"/>
value 是一個Date類變數
pattern 是輸出的日期格式
2、格式化數字
<%
    request.setAttribute("num1",3.1415926);
%>
<fmt:Number value="${requestScope.num1}" pattern="0.00"/>
pattern 預設小數點位元,並預設四捨五入,缺位會以0補位
<fmt:Number value="${requestScope.num1}" pattern="#.##"/>
區別在於不補位,都四捨五入;
***自訂標籤:
1、標籤處理類(標籤也是一個對象,那麼就需要先有類)
2、tld檔案,他是一個xml
3、頁面中匯入tld檔案位置<%@ taglib prefix="" uri="tld真實路徑"%>
*標籤處理類
早期javaee提供interface Tag,後來有了很多實作類別,為了操作方便sun公司提供了interface SimpleTag;
JspTag  是Tag和SimpleTag的父親
我們用的是SimpleTag,方法如下
void  doTag() :每次執列標籤時,都會調用這個方法;
JspTag getParent():返回父標籤
void setJspBody(JspFragment jspbody):設定標籤體
void setJspContext(JspContext pc) :設定標籤內容物件 PageContext是JspContext的兒子
void setParent():設定父標籤
這些方法都是TOMcat自己調用,getParent()方法我們自己調用,但是基本不使用;
所有的setxxxxx方法都會在doTag方法之前被調用;所以在doTag中就可以使用tomcat傳遞過來的對象了!
*配置TLD檔案:
tld檔案一般都放在WEB-INF之下,這樣保證安全
*模板可以去core標籤的tld檔案裡面借
<tag>
    <name>mytag1</name>   //指定標籤的名稱
    <tag-class>cn.itcast.tag.MyTag1</tag-class>  //指定標籤類位置
    <body-content>empty</body-content>  //指定標籤體類型,我們這裡使用空標籤!例如:<br/>自己開始自己結束
</tag>
為了方便我們可以使用實作類別SimpleTagSupport,這個類已經自動幫我們儲存了tomcat傳遞來的東西,並提供了get方法

jsp之jstl

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.