zoukankan      html  css  js  c++  java
  • JSTL标签之核心标签

    JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。

    在JSP页面引入核心标签库的代码为:<%@ taglib prefix="c" uri="http://Java.sun.com/jsp/jstl/core" %>

    下面简单介绍一下这些标签的用法:

    1,表达式控制标签

    <c:out>

    用于在JSP中显示数据。

    语法1:没有本体(body)内容
    <c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />


    语法2:有本体内容
    <c:out value="value" [escapeXml="{true|false}"]>
    default value
    </c:out>

    <c:set>

    用于保存数据。

    语法1
    将value的值储存至范围为scope的varName变量之中:
    <c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>


    语法2
    将本体内容的数据储存至范围为scope的varName变量之中:
    <c:set var="varName" [scope="{ page|request|session|application }"]>
    … 本体内容
    </c:set>

    语法3
    将value的值储存至target对象的属性中:
    c:set value="value" target="target" property="propertyName" />

    语法4
    将本体内容的数据储存至target对象的属性中:
    <c:set target="target" property="propertyName">
    … 本体内容
    </c:set>

    <c:remove>

    用于删除数据。

    语法:
    <c:remove var="varName" [scope="{ page|request|session|application }"] />

    <c:chtch>

    2,流程控制标签

    <c:if>

    用途跟其他语言中的if类似。

    语法1
    :没有本体内容(body)
    <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
    varName值为testCondition执行结果(布尔值)。


    语法2
    :有本体内容
    <c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
    本体内容</c:if>
    如果表达式的结果为true,则执行本体内容,false则相反

    <c:choose>、<c:when>、<c:otherwise>

    这3个标签通常情况下是一起使用的,<c:choose>标签作为<c:when>和<c:otherwise>标签的父标签来使用。

    语法1:
    <c:choose>
             <c:when>
             表达式
             <c:otherwise>
             表达式
             <c:otherwise>
             表达式
    </c:choose>

    语法2:
    <c:when text=”条件”>
    表达式
    </c:when>


    语法3:
    <c:otherwise>
    表达式
    </c:otherwise>

    补充:

    (1)语法1为3个标签的嵌套使用方式,<c:choose>标签只能和<c:when>标签共同使用。
    (2)语法2为<c:when>标签的使用方式,该标签都条件进行判断,一般情况下和<c:choose>共同使用。
    (3)<c:otherwise>不含有参数,只能跟<c:when>共同使用,并且在嵌套中只允许出现一次。

    3,循环标签

    <c:forEach>

    跟其他语言中的forEach类似。

    语法:迭代一集合对象之所有成员
    <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]
    [begin="begin"] [end="end"] [step="step"]>
    </c:forEach>

    <c:forTokens>

    用于浏览字符串,并根据指定的字符将字符串截取。

    语法:
    <c:forTokens items=”strigOfTokens” delims=””delimiters [var=”name” begin=”begin” end=”end” step=”len” varStatus=”statusName”] >

    4,URL操作标签

    <c:import>

    该标签可以把其他静态或动态文件包含到本JSP页面。同<jsp:include>的区别为:只能包含同一个web应用中的文件。而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。

    语法1:
    <c:import url=”url” [context=”context”][ value=”value”][scope=”page|request|session|application”] [charEncoding=”encoding”]>


    语法2:
    <c:import url=”url” varReader=”name” [context=”context”][charEncoding=”encoding”]><c:redirect>

    <c:url>

    该标签用于动态生成一个String类型的URL,可以同<c:redirect>标签共同使用,也可以使用html的<a>标签实现超链接。

    语法1:指定一个url不做修改,可以选择把该url存储在JSP不同的范围中。
    <c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]/>


    语法2:给url加上指定参数及参数值,可以选择以name存储该url。
    <c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]>
    <c:param name=”参数名” value=”值”>
    </c:url>

    上面说了那么多,那么为什么要用JSTL呢?它有什么优点呢?其优点如下:
    1、 简化了JSP和WEB应用程序的开发。
    2、 便于维护。
    3、 减少甚至避免了JSP中的scriptlet代码。
    4、 易于前台人员掌握,使前后台分工明确,提高团队开发效率。

    有人说JSTL已经过时了,其实每种语言都有它的优点,没有啥过时不过时的,就看适合不适合了。具体选择什么就看公司要求和项目的实际情况了。

  • 相关阅读:
    Codeforces Round #497 (Div. 2) B. Turn the Rectangles
    Codeforces Round #497 (Div. 2) A. Romaji
    [DFS] [洛谷] P1219 八皇后 O(1)判断
    [归并] [STL] [洛谷] P1309 瑞士轮
    [贪心] [洛谷] P1803 凌乱的yyy / 线段覆盖
    [模拟] [洛谷] P1071 潜伏者
    java.io.EOFException: End of File Exception between local host is: "master/192.168.***.***"; destination host is: “master”:9000; :
    hadoop 无法打开网页和重新格式化问题
    hadoop平台环境搭建
    无法创建新虚拟机: 无法打开配置文件“F:BigDatavm12centos01centos01.vmx”: 拒绝访问。
  • 原文地址:https://www.cnblogs.com/kuangwong/p/6393533.html
Copyright © 2011-2022 走看看