• 核心标签


    核心组标签是最常用的JSTL标签,包括:

    TagDescription
    <c:out > 和<%= ... >标签一样功能, 但对于表达式。
    <c:set > 设置表达式求值的结果在一个'范围'
    <c:remove> 删除一个范围的变量(从一个特定的范围内,如果已指定)。
    <c:catch> 用来处理产生错误的异常状况,并且将错误信息储存起来
    <c:if> 与我们在一般程序中用的if一样
    <c:choose> 本身只当做<c:when>和<c:otherwise>的父标签
    <c:when> <c:choose>的子标签,用来判断条件是否成立
    <c:otherwise > <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
    <c:import> 检索一个绝对或相对 URL,然后将其内容暴露给页面
    <c:forEach > 基础迭代标签,接受多种集合类型
    <c:forTokens> 根据指定的分隔符来分隔内容并迭代输出
    <c:param> 用来给包含或重定向的页面传递参数
    <c:redirect > 重定向至一个新的URL
    <c:url>

    使用可选的查询参数来创造一个URL

    <c:out>显示表达式的结果,类似于<%=表达式%>

    语法:

    <c:out value="value"  [escapeXml="{true|false}"]  [default ="defaultValue"] />

    <c:out value="value" [escapeXml="{true|false}"]>
      default value
    </c:out>
    属性描述必需默认值
    value 输出的信息 Yes None
    default 反馈输出的信息 No body
    escapeXml True,如果标签转义特殊XML字符 No true

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:out value="${'this a string type '}"/>
    </body>
    </html>
    
    //结果输出为:
    
    this a string type

    <c:set> 用于保存数据的语法,是<jsp:setProperty>行为标签的孪生兄弟,计算表达式的值,然后使用计算结果来设置javabean对象或java.util.Map对象的值。

    语法:

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

    <c:set var="varName"  [scope="{ page|request|session|application }"]>
    … 本体内容
    </c:set> //将本体内容的数据储存至范围为scope的varName变量之中
    <c:set value="value" target="target" property="propertyName" /> //将value的值储存至target对象的属性中 ,target与property同时指定
    <c:set target="target" property="propertyName">
    … 本体内容
    </c:set> //将本体内容的数据储存至target对象的属性中
    属性描述必需默认值
    value 需要保存的信息 No body
    target 为一JavaBean或java.util.Map对象 No None
    property 指定target对象的属性 No None
    var 欲存入的变量名称 No None
    scope var变量的JSP范围 No Page

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <hr>设置userName的属性为hellking,然后输出这个属性值:
        <c:set value="hellking" var="userName" />
        <c:out value="${userName}"/>
        <hr>设置password的属性,属性值在body中,然后输出这个属性值:
        <c:set var="password">
            1234
        </c:set>
        <hr>设置javaBean的属性,然后输出这些属性值:
        <c:set value="hk2" target="${user}" property="userName" />
        <c:set target="${user}" property="password">
            1234
        </c:set>
        userName=<c:out value="${user.userName}" />
        password=<c:out value="${user.password}" />
        <hr>设置不同的属性,并且制定它们的范围:
        <c:set value="1000" var="maxUser" scope="application" />
        <c:set value="100" var="maxIdelTime" scope="session" />
        <c:set value="next.jsp" var="nextPage" scope="page" />    
    </body>
    </html>

    <c:remove> 用于删除数据

    语法:

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

    属性描述必需默认值
    var 删除的变量名称 Yes None
    scope 要删除变量的范围 No All scopes

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:set var="salary" scope="session"  value="${2000*2}" />
        删除前:<c:out value="${salary}" /><br>
        <c:remove var="salary" /> 
        删除后:<c:out value="${salary}" default="null"/>
    </body>
    </html>
    
    //结果输出为:
        删除前:4000
        删除后:null

    <c:catch> 主要用来处理产生错误的异常状况,并且将错误信息储存起来

    语法:

    <c:catch [var="varName"] >
    … 欲抓取错误的部分
    </c:catch>
    属性描述必需默认值
    var 变量的名称保存在java.lang。如果抛出的Throwable在body元素内。 No None
    eg:
    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:catch var="catchException">
            <% int x=5/0; %>
        </c:catch>
        <c:if test="${catchException!=null}">
            <c:out value="${catchException}" /><br>
            <c:out value="${catchException.message}" />
        </c:if>
    </body>
    </html>
    
    //结果输出为:
    java.lang.ArithmeticException: / by zero
    / by zero

    <c:if> 相当于if判断

    语法:

    <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>

    <c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
      本体内容
    </c:if>
    属性描述必需默认值
    test 条件计算 Yes None
    var 变量名称的存储条件的结果 No None
    scope 变量的范围的存储条件的结果 No page

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:set var="salary" scope="session" value="${2000*2 }" />
        <c:if test=${salary>2000 }>
            <p>My salary is:<c:out value="${salary }" /></p>
        </c:if>
    </body>
    </html>
    
    //结果输出为:
    My salary is 4000

    <c:choose> 相当于switch语句

    语法:

    <c:choose>

      <c:when> //case

      </c:when>

      ...

      <c:otherwise> //default

      <c:otherwise>

    </c:choose>

    属性描述必需默认值
    test 条件计算 Yes None

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:set var="salary" scope="session" value="${2000*2 }" />
        <c:choose>
            <c:when test="${salary<=0 }">
                Salary is very low to survive.
            </c:when>
            <c:when test="${salary>1000 }">
                Salary is very good.
            </c:when>
            <c:otherwise>
                No comment sir...
            </c:otherwise>
        </c:choose>
    </body>
    </html>
    
    //结果输出为:
    Salary is very good.

    <c:import> 提供了所有<jsp:include>行为标签所具有的功能,同时也允许包含绝对URL

    语法:

    <c:import [var="varName"] url="url" [context=""]  [charEncoding=""]  [scope="{page|request|session|application}"]  [varReader="varReader"]>

    属性描述必需默认值
    url 需要检索和引入的页面的URL
    context / 紧接着一个本地网络应用程序的名称 当前应用程序
    charEncoding 所引入的数据的字符编码集 ISO-8859-1
    var 用于存储所引入的文本的变量 Print to page
    scope var属性的作用域 Page
    varReader 可选的用于提供java.io.Reader对象的变量

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:import var="data" url="http://www.w3cschool.cc" charEncoding="UTF-8"/>
        <c:out value="${data}" />
    </body>
    </html>

    <c:forEach> 循环控制

    语法:

    <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"][begin="begin"] [end="end"] [step="step"]>
    </c:forEach> //迭代一集合对象的所有成员
    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
    </c:forEach> //迭代指定的次数
    属性描述必需            默认值
    items 要进行迭代的集合 No None
    begin 如果指定了begin,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从0开始迭代。它的类型为整数 No 0
    end 如果指定了end,那么就在items[end]结束迭代;如果没有指定items,那么就在items最后结束迭代。它的类 型也为整数 No Last element
    step 迭代的步长 No 1
    var 迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量 No None
    varStatus 迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息 No None

    注意:

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <%
            String atts[]=new String[5];
            atts[0]="hello";
            atts[1]="this";
            atts[2]="is";
            atts[3]="a";
            atts[4]="pen";
            request.setAttribute("atts",atts);
        
        %>
        <c:forEach items="${atts}" var="item">
            <c:out value="${item}" />
        </c:forEach>
        <c:forEach items="${atts}" var="item" begin="0" end="4" step="2">
            <c:out value="${item}" />
        </c:forEach>
    </body>
    </html>
    
    //结果输出为:
    hello this is a pen
    hello is pen

    <c:forTokens> 根据指定的分隔符来分隔内容并迭代输出 ,用法类似于<c:forEach>

    属性多一个:

    属性描述      必需            默认值    
    items 要进行迭代的集合 No None
    begin 如果指定了begin,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从0开始迭代。它的类型为整数 No 0
    end 如果指定了end,那么就在items[end]结束迭代;如果没有指定items,那么就在items最后结束迭代。它的类 型也为整数 No Last element
    step 迭代的步长 No 1
    var 迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量 No None
    varStatus 迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息 No None
    delims 分隔符 Yes None

     eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:forTokens items="Zara,nuha,roshy" delims="," var="name">
            <c:out value="${name}" />
        </c:forTokens>
    </body>
    </html>
    
    //结果输出为:
    Zara nuha roshy

    <c:param> 用来给包含或重定向的页面传递参数,用于在<c:url>标签中指定参数,而且与URL编码相关

    语法:

    <c:param name="paramName"  [value="value"] />

    属性描述必需默认值
    name URL中要设置的参数的名称
    value 参数的值 Body

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:url value="/index.jsp" var="myURL">
            <c:param name="trackingId" value="1234" />
            <c:param name="reportType" value="summary" />
        </c:url>
        <c:import url="${myURL }" />
    </body>
    </html>

    <c:url> 使用可选的查询参数来创造一个URL,将URL格式化为一个字符串,然后存储在一个变量中,标签在需要的时候自动重写URL.该标签只是用于调用 response.encodeURL()方法的一种可选方法。它提供了合适的URL编码,包括<c:param>中指定的参数。

    语法:

    <c:url value="url" [context=""] [var=""] [scope="{page|request|session|application}"]>

    属性描述是否必要默认值
    value 基础URL
    context 本地网络应用程序的名称 当前应用程序
    var 代表URL的变量名 Print to page
    scope var属性的作用域 Page

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <a href="<c:url value="/index.html" />">Test</a>
    </body>
    </html>

    <c:redirect> 重定向至一个新的URL

    语法:

    <c:redirect url="redirectUrl" [context="projectName"] />

    属性描述必需默认值
    url URL重定向用户的浏览器 Yes None
    context /后面的本地Web应用程序的名称 No 当前应用

    eg:

    <%@ page language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Tag Example - www.yiibai.com</title>
    </head>
    <body>
        <c:redirect url="http://www.yiibai.com" />
    </body>
    </html>
  • 相关阅读:
    Word 操作类库
    Windows服务卸载之后未重启机器之前再安装问题
    Word转Html
    Centos7下配置Python3和Python2共存,以及对应版本Ipython安装配置
    Linux 和Windows之间命令行实现目录或文件互传
    centos下卸载OpenJDK 并安装sun的jdk
    bridged(桥接模式)、NAT(网络地址转换模式)和hostonly(主机模式)VMware下三种网络配置方式
    关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案
    centos7下固定IP(静态IP)网络配置
    【分享】BUG从诞生到灭亡——处理BUG的流程
  • 原文地址:https://www.cnblogs.com/blog-yuesheng521/p/5466069.html
Copyright © 2020-2023  润新知