zoukankan      html  css  js  c++  java
  • [06] JSTL标准标签库


    1、JSTL概述

    之前在《[03-01] JSP自定义标签》中已经说明了自定义标签的概况,而JSTL也是一套标签库,不过是厂商已经定义好的标签库,我们不再需要自行进行定制,直接使用即可。

    所以说JSTL的使用也和我们使用自定义标签是相同的:
    • 它也由两部分组成,tld文件和标签处理器类
    • 导入tld也要使用JSP的taglib指令

    JSTL需要单独下载jar包,毕竟是别人写好了的,jstl1.1往往需要jstl.jar和standard.jar两个jar包(若导入jar包无法仍无法使用,尝试将tld文件复制到WEB-INF目录下)。
     
    这里以JSTL的常用版本1.1来示例说明,如下可以看到,共有五个方面的tld文件:
    • c.tld  核心标记库,最常用的标记如循环、分支、表达式赋值等
    • fmt.tld  格式化/国际化标记库,用来解析数据,如日期等
    • sql.tld  数据库标记库,包含访问数据库的标记等
    • x.tld  xml标记库,用来访问xml元素
    • fn.tld  函数标记库,包含一些常用函数可以直接调用,如截取字符串等

    JSTL往往和EL表达式结合使用,在JSTL标签中,属性往往通过EL进行赋值。

    2、c.tld部分标签说明

    • 表达式控制标签:out、set、remove、catch
    • 流程控制标签:if、choose、when、otherwise
    • 循环标签:forEach、forTokens
    • url操作标签:import、url、redirect
     

    2.1 表达式控制

    <c:out value="字符串" />  
    输出value的值,往往可以直接使用EL替代该标记。

    <c:set var="loggedIn" scope="session" value="${true}" />
    将value的值存储到scope范围中名var的属性中去,scope默认范围为page。

    <c:remove var="loggedIn" scope="session" />
    将var的值,从scope范围中去除。

    <c:catch var="e"><%= 100/0 %></c:catch>
    捕获异常,异常对象使用var封装。

    2.2 流程控制

    <c:if test="${user.login}">Welcome</c:if>
    若test的值为true,则运行<c:if></c:if>之间的代码。

    <c:choose>
        <c:when test="${13>4}">
            hello!
        </c:when>
        <c:when test="${4<5}">
            hi!
        </c:when>
        <c:otherwise>
            how are u?
        </c:otherwise>
    </c:choose>
    实现if/else的流程逻辑,注意,多个when在choose中类似if else,而不是单独的if

    2.3 循环标签

    <c:forEach item="${allCustomers}" var="cust">
        ${cust}
    </c:forEach>
    迭代集合allCustomers,每次迭代出来的元素将存储到pageContext中,名为cust。

    <c:forTokens items="a:b:c:d" delims=":" var="token">
        ${token}
    </c:forTokens>
    items属性指定需要迭代的字符串,delims表示分隔符,var表示使用分隔符分割items所产生的字符串。

    2.4 url操作标签

    <c:import url="http://www.demo.com/test.txt" />
    用来包含一些文本信息,<jsp:include>只能包含同一个Web应用中的文件,而<c:import>则可以包含其他Web应用甚至网络上的资源。

    <c:redirect>
        <c:redirect url="index.jsp" />
        <c:param name="login" value="true" />
    </c:redirect>
    进行响应重定向。

    <a href=<c:url value="admin/admin.jsp" />>访问admin.jsp页面</a>
    输出url地址,默认使用url重写。


  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/deng-cc/p/8391416.html
Copyright © 2011-2022 走看看