zoukankan      html  css  js  c++  java
  • JSTL

    JSTL

    JSP Standard Tag Library JSP 标准标签库,JSP 为开发者提供的⼀系列的标签,使⽤这些标签可以完成 ⼀些逻辑处理,⽐如循环遍历集合,让代码更加简洁,不再出现 JSP 脚本穿插的情况。

    实际开发中 EL 和 JSTL 结合起来使⽤,JSTL 侧重于逻辑处理,EL 负责展示数据。

    JSTL的使用

    1.JSTL使用

    1.需要导⼊ jar 包(两个 jstl.jar standard.jar)存放的位置 web/WEB-INF

    2.在 JSP ⻚⾯开始的地⽅导⼊ JSTL 标签库

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

    3.使用样例

    <c:forEach items="${list}" var="user">
        <tr>
            <td>${user.id}</td>
            <td>${user.name}</td>
            <td>${user.score}</td>
            <td>${user.address.value}</td>
        </tr>
    </c:forEach>
    

    2.JSTL优点

    1、提供了统⼀的标签

    2、可以⽤于编写各种动态功能

    常用JSTL核心标签库

    核⼼标签库常⽤标签: set、out、remove、catch

    1.set:向域对象中添加数据

    <%
        requset.setAttribute(key,value)
    %>
    <c:set var="name" value="tom" scope="request"></c:set>
    ${requestScope.name}
    <%
        User user = new User(1,"张三",66.6,new Address(1,"科技路"));
        request.setAttribute("user",user);
    %>
    ${user.name}
    <hr/>
    <c:set target="${user}" property="name" value="李四"></c:set>
    ${user.name}
    

    2.out:输出域对象中的数据

    <c:set var="name" value="tom"></c:set>
    <c:out value="${name}" default="未定义"></c:out>
    

    3.remove:删除域对象中的数据

    <c:remove var="name" scope="page"></c:remove>
    <c:out value="${name}" default="未定义"></c:out>
    

    4.catch:捕获异常

    <c:catch var="error">
        <%
            int a = 10/0;
        %>
    </c:catch>
    ${error}
    

    5.条件标签:if choose

    <c:set var="num1" value="1"></c:set>
    <c:set var="num2" value="2"></c:set>
    <c:if test="${num1>num2}">ok</c:if>
    <c:if test="${num1<num2}">fail</c:if>
    <hr/>
    <c:choose>
        <c:when test="${num1>num2}">ok</c:when>
        <c:otherwise>fail</c:otherwise>
    </c:choose>
    

    6.迭代标签:forEach

    <c:forEach items="${list}" var="str" begin="2" end="3" step="2"
               varStatus="sta">
        ${sta.count}、${str}<br/>
    </c:forEach>
    

    格式化标签库常用标签

    <%
        request.setAttribute("date",new Date());
    %>
    <fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss">
    </fmt:formatDate><br/>
    <fmt:formatNumber value="32145.23434" maxIntegerDigits="2"
    maxFractionDigits="3"></fmt:formatNumber>
    

    函数标签库常用标签

    <%
        request.setAttribute("info","Java,C");
    %>
    ${fn:contains(info,"Python")}<br/>
    ${fn:startsWith(info, "Java")}<br/>
    ${fn:endsWith(info, "C")}<br/>
    ${fn:indexOf(info, "va")}<br/>
    ${fn:replace(info, "C","Python")}<br/>
    ${fn:substring(info, 2, 3)}<br/>
    ${fn:split(info, ",")[0]}-${fn:split(info, ",")[1]}
    
  • 相关阅读:
    CKA考试题:[统计ready的node个数,不包含有污点的和没有调度的]
    期货-基差
    期货-套期保值
    CKA考试题:[init container]
    select 与 time.After 配合使用的问题
    kubernetes 学习资料
    [rook] rook的控制流
    k8s dev
    elastic search query & filter & query_string
    如何保持github的fork于主干同步
  • 原文地址:https://www.cnblogs.com/wind-and-sky/p/14213245.html
Copyright © 2011-2022 走看看