• JSTL核心标签库


     1     <%-- 保存数据 --%>
     2     <c:set></c:set>
     3 
     4     <%-- 获取数据 --%>
     5     <c:out value=""></c:out>
     6 
     7     <%-- 单条件判断 --%>
     8     <c:if test=""></c:if>
     9 
    10     <%-- 多条件判断 --%>
    11     <c:choose></c:choose>
    12     <c:when test=""></c:when>
    13     <c:otherwise></c:otherwise>
    14 
    15     <%-- 用于迭代(循环) --%>
    16     <c:forEach></c:forEach>
    17     <c:forTokens items="" delims=""></c:forTokens>
    18 
    19     <%-- 重定向 --%>
    20     <c:redirect></c:redirect>

    1.<c:set/>给域对象赋值

    JSTL标签
        var:数据的名称
        value:保存的数据值
        scope:保存到哪个域
            page:page域
            request:request域
            session:session域
            application:application域
     1       <%--
     2           <c:set/> 给域对象赋值
     3        --%>
     4        <%-- jsp脚本 --%>
     5        <%
     6            //String name = "eric";
     7            //pageContext.setAttribute("name", name);
     8        %>
     9        <%-- 
    10            JSTL标签
    11             var:数据的名称
    12             value:保存的数据值
    13             scope:保存到哪个域
    14                 page:page域
    15                 request:request域
    16                 session:session域
    17                 application:application域
    18         --%>
    19        <c:set var="name" value="jacky" scope="request"/>
    20        ${requestScope.name}
    View Code
     
    2.<c:out/>获取域对象的数据
    value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取
    default:默认值。当前需要获取的内容为null时,那么使用默认值代替
    escapeXml:默认情况下为true,out标签会把输出的内容进行转义。如果不需要转义,则为false即可。
     1     <%--
     2       2. <c:out/> 获取域对象的数据
     3      --%>
     4     <%-- EL表达式 --%>
     5      ${name }<br>
     6     <%--
     7       value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取
     8        default:默认值。当前需要获取的内容为null时,那么使用默认值代替
     9        escapeXml:默认情况下为true,out标签会把输出的内容进行转义。如果不需要转义,则为false即可。
    10       --%>
    11     <c:out value="${name }"  default="<h3>默认值</h3>" escapeXml="false"></c:out>
    View Code 

    3.<c:if/>单条件判断

    test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。

    1 <%--
    2     3.<c:if/>单条件判断
    3  --%>
    4 <%--
    5     test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。
    6 --%>
    7 <c:if test="${10 > 8}">
    8       <input type="submit" value="提交"/>
    9 </c:if>

    4.<c:choose/>+<c:when/>+<c:otherwise/>多条件判断

     1 <%--
     2     4.<c:choose/>+<c:when/>+<c:otherwise/> 多条件判断
     3  --%>
     4 <%--模拟登录 --%>
     5 <c:set var="user" value="jacky" scope="session"/>
     6 <c:choose>
     7     <c:when test="${!empty sessionScope.user }">
     8        欢迎回来,你的用户名是:${sessionScope.user},<a href="">【退出登录】</a>
     9     </c:when>
    10     <c:otherwise>
    11         请先<a href="">注册</a>或<a href="">登录</a>
    12     </c:otherwise>
    13 </c:choose>
    View Code

    5.<c:forEach/>用于迭代或循环

    begin:从哪个元素开始遍历,从0开始 可以不写
    end:到哪个元素为止  可以不写
    step:增加步长。默认为1 可以不写
    items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取
    var:每个元素名称
    varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始
     1 <%--
     2     5.<c:forEach/>用于迭代或循环
     3 --%>
     4 <%
     5     //List集合
     6     List<Student> list = new ArrayList<Student>();
     7     list.add(new Student("abc","123"));
     8     list.add(new Student("def","123"));
     9     list.add(new Student("ghi","123"));
    10     list.add(new Student("jkl","123"));
    11     pageContext.setAttribute("list", list);
    12 %>
    13 EL表达式:<br>${list[0]}<br>${list[1]}<br>${list[2]}<br>${list[3]}<br>
    14 <%--
    15        begin:从哪个元素开始遍历,从0开始 可以不写
    16        end:到哪个元素为止  可以不写
    17        step:增加步长。默认为1 可以不写
    18        items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取
    19        var:每个元素名称
    20        varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始
    21 --%>
    22 JSTL标签:<br>
    23 <c:forEach items="${list}" var="student" varStatus="varStats">
    24         学生${varStats.count} :${student}<br>
    25 </c:forEach>
    26 <hr/>
    27 <%
    28         //Map集合
    29       Map<String,Student> map = new HashMap<String,Student>();
    30       map.put("001", new Student("eric","1234"));
    31       map.put("002", new Student("rose","1234"));
    32       map.put("003", new Student("jacky","1234"));
    33       pageContext.setAttribute("map", map);
    34           %>
    35 EL表达式:<br>${map['001']}<br>${map['002']}<br>${map['003']}<br>
    36 JSTL标签:<br>
    37 <%--
    38       注意:forEach标签遍历Map集合时,把每个Map的对象使用Entry封装,Entry封装键对象和值对象,
    39       通过getKey()获取键对象,通过getValue()获取值对象
    40 --%>
    41 <c:forEach items="${map}" var="entry" varStatus="varStats">
    42       <%--学生${varStats.count}:${student}<br> --%>
    43       编号:${entry.key} - 姓名:${entry.value.name} - 密码:${entry.value.password}<br>
    44 </c:forEach>
    View Code
    6.<c:forTokens/>遍历特殊字符串

    items:需要遍历的字符串
    delims:指定分隔符号
    var:每个内容的名称
     1 <%--
     2     6.<c:forTokens/>遍历特殊字符串
     3 --%>
     4 <c:set var="str" value="java-net-php-平面设计" scope="request" />
     5 <%-- JSP脚本形式 --%>
     6 <%
     7       String str = (String)request.getAttribute("str");
     8       String[] strs = str.split("-");
     9       for(int i = 0; i < strs.length; i++){
    10           out.write(strs[i]+",");
    11       }
    12 %>
    13 <br>
    14 <%--JSTL标签 --%>
    15 <%--
    16       items:需要遍历的字符串
    17       delims:指定分隔符号
    18       var:每个内容的名称
    19 --%>
    20 <c:forTokens items="${str}" delims="-" var="s" varStatus="varStats">
    21       ${varStats.count}:${s}<br>
    22 </c:forTokens>
    View Code







    作者:容一博

    个性签名:我有一个不成熟的想法!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    从实战角度超级详解中大型企业微服务化的六大核心关键技术
    Web API 入门的相关文章
    发布asp.net core3.1 web api to IIS
    web api 起步之一
    工作中常见的一些英语
    SSIS--Excel Demo
    SSIS中常用的一些Task组件
    企业系统上Azure的建议与注意事项
    POST提交时防止密码泄漏
    转 Netbackup用于技术支持的问题报告(报障模版)
  • 原文地址:https://www.cnblogs.com/chromer/p/jstl.html
Copyright © 2020-2023  润新知