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

    核心组标签是最常用的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>
  • 相关阅读:
    LintCode Python 简单级题目 488.快乐数
    LintCode Python 简单级题目 100.删除排序数组中的重复数字 101.删除排序数组中的重复数字II
    LintCode Python 简单级题目 373.奇偶分割数组
    LintCode Python 简单级题目 39.恢复旋转排序数组
    LintCode Python 简单级题目 35.翻转链表
    LintCode Python 简单级题目 451.两两交换链表中的节点
    LintCode Python 简单级题目 174.删除链表中倒数第n个节点
    aws查看官方centos镜像imageid
    linux shell脚本查找重复行/查找非重复行/去除重复行/重复行统计
    php配置优化-生产环境应用版
  • 原文地址:https://www.cnblogs.com/blog-yuesheng521/p/5466069.html
Copyright © 2011-2022 走看看