zoukankan      html  css  js  c++  java
  • java学习day32-JSP标签技术-JSTL标签库

    JSTL表达式

    JSTL标签库是为JavaWeb开发人员提供的一套标准通用的标签库;

    JSTL标签库和EL配合使用可以取代JSP中大部分的Java代码;

    使用

    1. 引入jar包

      jar包地址(可以使用maven方式): https://mvnrepository.com/artifact/Javax.servlet/jstl

    2. jsp头文件写上taglib指令 (可以在uri中查看代码提示, 以core结尾的连接(较长的))

      prefix: 是命名前缀

      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    标签

    set标签

    set标签是往域中添加属性

    <c:set var="name" value="张三" scope="request"/>

    相当于:request.setAttribute("name","张三");

    • var属性: 表示指定的属性名

    • value属性: 表示属性的值

    • scope属性: 表示往哪个域中添加属性(默认为pageContext最小的域)

      可取值: request, session, application

    if标签

    可以模拟简单的if...else...

    例如: 判断成绩小于0或者大于100的都不合法

    <c:if test="${score>100 || score<0}">
        您的成绩不合法!
    </c:if>
    
    • test属性: 判断表达式, 成立就显示标签体的内容

    forEach标签

    例如: 遍历域中的names

    <c:forEach var="name" items="${names}">
        <li>${name}</li>
    </c:forEach>
    
    • items属性: 指定要便利的数组或集合

    • var属性: 指定一个变量, 可用于接收数组或集合中的每一个元素

    • begin属性:指定循环的起始位置,如果没有指定,则默认从第一个值开始遍历

    • end属性:指定循环的终止位置,如果没有指定,则默认循环到最后一个

    • step属性:用于指定循环的步长

    • varStatus属性:用于指定循环的状态varStatus中的变量如下表:

      变量 类型 描述
      index int 位于原集合中的索引值(从0开始)
      count int 位于现在子集合中的索引值(从1开始,如果没有begin、end和step,则和index一样)
      first boolean 是否是现在子集合的第一位
      last boolean 是否是现在子集合的最后一位

    forEach案例1: 获取map元素

    <%
    Map map = new HashMap();
    map.put("name", "尼古拉斯.赵四");
    map.put("age", 35);
    map.put("addr", "中国");
    request.setAttribute("map", map);
    %>
    <c:forEach var="entry" items="${map}">
        ${entry}<br>
    </c:forEach>
    

    结果:

    name=尼古拉斯.赵四
    addr=中国
    age=35
    

    如果单独获取key或者value, 可以这么写

    <c:forEach var="entry" items="${map}">
    	${entry.key} : ${entry.value}<br>
    </c:forEach>
    

    forEach案例2: 测试varStatus属性

    <%
    String[] name = {
        "刘备", "关羽", "张飞", "赵云"
    };
    request.setAttribute("names", name);
    %>
    
    <c:forEach var="name" items="${names}" varStatus="status">
        ${status.first}, ${status.last}, ${status.count}, ${status.index}, ${name} <br>		
    </c:forEach>
    

    结果:

    true, false, 1, 0, 刘备
    false, false, 2, 1, 关羽
    false, false, 3, 2, 张飞
    false, true, 4, 3, 赵云
    

    forEach案例3: 输出1~100内的3的倍数

    <c:forEach var="i" begin="1" end="100" step="1">
        ${i%3==0? i : ""} 
    </c:forEach>
    

    结果:

    3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99
    
    

    out标签

    标签用来显示一个表达式的结果,与<%= %>作用相似

    <c:out value="<string>" default="<string>" escapeXml="<true|false>"/>
    
    
    • value属性: 要输出的内容(必有)
    • default属性: 输出的默认值(默认为主体中的内容)
    • escapeXml属性: 是否忽略XML特殊字符(默认true)

    choose, when, otherwise标签

    Java switch语句的功能一样,用于在众多选项中做出选择。

    <c:choose>
        <c:when test="<boolean>">
            ...
        </c:when>
        <c:when test="<boolean>">
            ...
        </c:when>
        ...
        ...
        <c:otherwise>
            ...
        </c:otherwise>
    </c:choose>
    
    

    when中的test属性数判断条件, 如果满足, 则会显示标签体的内容, 如果都不满足, 则会显示otherwise标签中的内容

  • 相关阅读:
    20165223 week6测试错题总结
    20165223《Java程序设计》第七周Java学习总结
    20165207 第八周学习总结
    2017-2018-2 20165207实验二《Java面向对象程序设计》实验报告
    20165207 第七周学习总结
    20165207 第六周学习总结
    20165207 实验一 Java开发环境的熟悉
    20165207 第五周学习总结
    20165207 第四周学习总结
    20165207 第三周学习总结
  • 原文地址:https://www.cnblogs.com/liqbk/p/13122308.html
Copyright © 2011-2022 走看看