多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > JSTL標簽庫的使用詳解

JSTL標簽庫的使用詳解

來源:程序員人生   發布時間:2015-07-22 23:26:54 閱讀次數:3890次

   在上1篇博客EL表達式中,我們介紹了EL表達式的簡單使用,但是在使用EL表達式的同時,1般都是結合JSTL來1起使用的,這篇文章我們就來介紹1下JSTL的背景,分類,其在程序中的使用!

   背景

   JSTL(JSP StandardTag Library,JSP標準標簽庫)是1個不斷完善的開放源代碼的JSP標簽庫,是由apache的jakarta小組來保護的。JSTL只能運行在支持JSP1.2和Servlet2.3規范的及其以上容器上,如tomcat 7.x。在JSP 2.0中也是作為標準支持的。

   JSTL 1.0 發布于 2002 年 6 月,由4個定制標記庫(core、format、xml 和 sql)和1對通用標記庫驗證器(ScriptFreeTLV和 PermittedTaglibsTLV)組成。core 標記庫提供了定制操作,通過限制了作用域的變量管理數據,和履行頁面內容的迭代和條件操作。它還提供了用來生成和操作 URL 的標記。顧名思義,format 標記庫定義了用來格式化數據(特別是數字和日期)的操作。它還支持使用本地化資源束進行 JSP 頁面的國際化。

    分類

    JSTL 核心標簽庫(C標簽)標簽共有13個,功能上分為4類:
        1.表達式控制標簽:out、set、remove、
catch
        2.流程控制標簽:if、choose、when、
otherwise
        3.循環標簽:forEach、
forTokens
        4.URL操作標簽:import、url、redirect

    使用

    如果我們要在程序中使用這些標簽,首先我們要引入jar,這里我們要引入兩個jar ,jstl⑴.2.jar和standard⑴.1.2.jar,然后將這兩個jar放入到WEB-INF下的lib文件夾中。然后在我們的jsp頁面上要引入<%@ tagliburi="http://java.sun.com/jsp/jstl/core" prefix="c"%>         這樣我們就能夠在jsp的頁面上使用jstl了!

   下邊我們在代碼中看1看這些標簽的使用!

<span style="font-size:18px;"><%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ page import="java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <h1>測試JSTL核心庫</h1> <hr> <li>采取c:out標簽</li><br> hello(使用標簽):<c:out value="123"/><br> hello(使用標簽):<c:out value="hello"/><br> hello(使用標簽):<c:out value="${hello}"/><br> hello(使用EL表達式):${hello }<br> hello(default):${hello123 }<br> hello(使用缺省值):<c:out value="${hello123}" default="沒有值"/><br> hello(使用缺省值):<c:out value="${hello123}">沒有值</c:out><br> welcome(使用EL表達式):${welcome }<br> welcome(使用標簽,escapeXml=true):<c:out value="${welcome}" escapeXml="true"/><br> welcome(使用標簽,escapeXml=false):<c:out value="${welcome}" escapeXml="false"/><br> <p> <li>測試c:set,c:remove</li><br> <c:set value="root" var="userid"/> userid:${userid }<br> <c:remove var="userid"/> userid:${userid }<br> <p> <li>條件控制標簽:c:if</li><br> <c:if test="${v1 lt v2}"> v1小于v2<br> </c:if> <p> <li>條件控制標簽:c:choose,c:when,c:otherwise</li><br> <c:choose> <c:when test="${v1 gt v2}"> v1大于v2<br> </c:when> <c:otherwise> v1小于v2<br> </c:otherwise> </c:choose> <c:choose> <c:when test="${empty userList}"> 沒有符合條件的數據<br> </c:when> <c:otherwise> 存在用戶數據<br> </c:otherwise> </c:choose> <p> <li>演示循環控制標簽:forEach</li><br> <h3>采取jsp腳本顯示</h3> <table border="1"> <tr> <td>用戶名稱</td> <td>年齡</td> <td>所屬組</td> </tr> <% List userList = (List)request.getAttribute("users"); if (userList == null || userList.size() == 0) { %> <tr> <td colspan="3">沒有符合條件的數據</td> </tr> <% }else { for (Iterator iter=userList.iterator(); iter.hasNext();) { com.tgb.jstl.User user = (com.tgb.jstl.User)iter.next(); %> <tr> <td><%=user.getUsername() %></td> <td><%=user.getAge() %></td> <td><%=user.getGroup().getName() %></td> </tr> <% } } %> </table> <h3>采取forEach標簽</h3> <table border="1"> <tr> <td>用戶名稱</td> <td>年齡</td> <td>所屬組</td> </tr> <c:choose> <c:when test="${empty users}"> <tr> <td colspan="3">沒有符合條件的數據</td> </tr> </c:when> <c:otherwise> <c:forEach items="${users}" var="user"> <tr> <td>${user.username }</td> <td>${user.age }</td> <td>${user.group.name }</td> </tr> </c:forEach> </c:otherwise> </c:choose> </table> <h3>采取forEach標簽,varstatus</h3><br> <table border="1"> <tr> <td>用戶名稱</td> <td>年齡</td> <td>所屬組</td> </tr> <c:choose> <c:when test="${empty users}"> <tr> <td colspan="3">沒有符合條件的數據</td> </tr> </c:when> <c:otherwise> <c:forEach items="${users}" var="user" varStatus="vs"> <c:choose> <c:when test="${vs.count mod 2 == 0}"> <tr bgcolor="red"> </c:when> <c:otherwise> <tr> </c:otherwise> </c:choose> <td>${user.username }</td> <td>${user.age }</td> <td>${user.group.name }</td> </tr> </c:forEach> </c:otherwise> </c:choose> </table> <h3>采取forEach標簽,begin,end</h3> <table border="1"> <tr> <td>用戶名稱</td> <td>年齡</td> <td>所屬組</td> </tr> <c:choose> <c:when test="${empty users}"> <tr> <td colspan="3">沒有符合條件的數據</td> </tr> </c:when> <c:otherwise> <c:forEach items="${users}" var="user" begin="2" end="8" step="2"> <tr> <td>${user.username }</td> <td>${user.age }</td> <td>${user.group.name }</td> </tr> </c:forEach> </c:otherwise> </c:choose> </table> <li>演示循環控制標簽:forEach,輸出map</li><br> <c:forEach items="${map}" var="entry"> ${entry.key },${entry.value }<br> </c:forEach> <p> <li>演示循環控制標簽:forTokens</li><br> <c:forTokens items="${strTokens}" delims="#" var="v"> ${v }<br> </c:forTokens> <p> <li>c:catch標簽</li><br> <% try { Integer.parseInt("asdfsdf"); }catch(NumberFormatException e) { e.printStackTrace(); out.println(e.getMessage()); } %> <p> <c:catch var="msg"> <% Integer.parseInt("asdfsdf"); %> </c:catch> ${msg }<br> <p> <li>c:import標簽</li><br> <c:import url="http://localhost:8080/drp4.5/test_upload.html"/> <p> <li>c:url,c:param</li><br> <c:url value="http://localhost:8080/drp4.5/sysmgr/validate.jsp" var="u"> <c:param name="userId" value="zhangsan"/> <c:param name="age" value="20"/> </c:url> ${u }<br> <li>c:redirect</li><br> <c:redirect url="/login.jsp" context="/drp4.5"/> </body> </html></span>

 

      通過上邊寫簡單代碼的使用,我們就能夠很容易的知道他們該如何在我們的利用程序中使用了!

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产v在线| 日韩精品中文字幕一区三区 | 日本三级黄视频 | 伊人影院在线观看视频 | 一区二区三区四区五区六区 | 视色4setv.com| 久久精品一区二区影院 | 自由成熟的性色视频免费观看 | 男女xx00xx的视频免费观看 | 亚洲黄色网址在线观看 | 精品亚洲视频在线 | 久久综合九九亚洲一区 | 国产在线欧美日韩精品一区二区 | 国产欧美一区二区三区小说 | 日本在线 | 中文 | 色博影院| 九色九色九色在线综合888 | 日本高清www午色夜黄 | 国产中文字幕在线播放 | 亚洲成a人片777777网站 | 国产成人高清亚洲一区91 | 精品一区二区91 | 欧美精品 日韩 | 国产欧美综合精品一区二区 | 免费看一区二区三区 | 欧美三级欧美做a爱 | 欧美激情一区二区三区视频高清 | 小说区视频区图片区 | 欧美日韩福利视频一区二区三区 | 大香伊人久久 | 小说图片区| 免费aⅴ视频 | 日韩视频一区二区三区 | 欧美性18| 国产精品一区二区久久精品涩爱 | 欧美最猛黑人xxxxx猛交 | 亚洲欧美人成人综合在线50p | 欧美日韩中文国产 | 欧美亚洲国产精品 | 男女污视频在线观看 | 樱花aⅴ一区二区三区四区 影视精品网站入口 |