zoukankan      html  css  js  c++  java
  • JSTL

    1、什么是JSTL?

      JSTL:JavaServer Pages Standard Tag Library,JSP标准标签库,它封装了JSP应用的通用核心功能。(JSTL一般需要与EL表达式联合使用

    2、为什么要用JSTL?

      实现了JSP页面中的代码复用(基于标签库原理,重复率较高的代码块支持复用,提高效率)

      书写JSP页面时可读性更强(跟xml很像,便于前端查看和参与开发)

    3、如何使用JSTL?

      导入JSTL.jar和standard.jar到/WEB-INF/lib/下。

      采用taglib指令引入标签库即在JSP添加引用

    4、项目中常用到的JSTL

      4.1、核心标签:引用和新标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/JSTL/core"%>

        JSTL 核心标签库标签共有13个,功能上分为4类:

          表达式控制标签:out、set、remove、catch

          流程控制标签:if、choose、when、otherwise

          循环标签:forEach、forTokens

          URL操作标签:import、url、redirect

        自己平时用到的有以下几种:

          <c:out>用于在JSP中显示数据。escapeXml表示是否转换特殊字符,默认值true;

          <c:set>用于设置变量值和对象属性

          <c:if>用于判断表达式的值,如果表达式的值为 true 则执行其主体内容。

          <c:choose>标签与Java switch语句的功能一样,用于在众多选项中做出选择。switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>

          <c:forEach>标签的作用就是迭代输出标签内部的内容。它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数

          <c:forTokens>标签通过指定分隔符将字符串分隔为一个数组然后迭代它们。(如果分隔符delims为多个字符,就表示使用多种分隔符进行分割)

      4.2、格式化标签:用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/JSTL/fmt"%>

          平时项目中只用到了 <fmt:formatDate pattern="yyyy-MM-dd" value="${Date}"/>

        4.3、JSTL函数:可以直接在表达式中使用,大大的简化了代码,提供代码的可读性,引用JSTL函数标签库的语法如下:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/JSTL/functions" %>

    fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}">
    fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test="${fn:containsIgnoreCase(name, searchString)}">
    fn:endsWith 判断字符串是否以另外字符串结束 <c:if test="${fn:endsWith(filename, '.txt')}">
    fn:escapeXml 把一些字符转成XML表示,例如<字符应该转为&lt; ${fn:escapeXml(tag.tagName)}
    fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, '-')}
    fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ';')}
    fn:length 获取字符串的长度,或者数组的大小 ${fn:length(shoppingCart.products)}
    fn:replace 替换字符串中指定的字符 ${fn:replace(text, '-','•')}
    fn:split 把字符串按照指定字符切分 ${fn:split(customerNames, ';')}
    fn:startsWith 判断字符串是否以某个子串开始 <c:if test="${fn:startsWith(product.id, '100-')}">
    fn:substring 获取子串 ${fn:substring(zip, 6, -1)}
    fn:substringAfter

    获取从某个字符所在位置开始的子串

    ${fn:substringAfter(zip, '-')}
    fn:substringBefore 获取从开始到某个字符所在位置的子串 ${fn:substringBefore(zip, '-')}
    fn:toLowerCase 转为小写 ${fn.toLowerCase(product.name)}
    fn:toUpperCase 转为大写字符 ${fn.UpperCase(product.name)}
    fn:trim 去除字符串前后的空格 ${fn.trim(name)}

    5、应用小实例:

       <c:set value="" var="Ids" />
            <c:set value="" var="Names" />
            <c:forEach var="item" items="${groups}" varStatus="status">
                <c:choose>
                    <c:when test="${status.first}">
                        <c:set value="${item.groupId}" var="Ids" />
                        <c:set value="${item.groupName}" var="Names" />
                    </c:when>
                    <c:otherwise>
                        <c:set value="${Ids},${item.groupId}" var="Ids" />
                        <c:set value="${Names},${item.groupName}" var="Names" />
                    </c:otherwise>
                </c:choose>
            </c:forEach>  

  • 相关阅读:
    按比例缩放图片
    Centos8中安装并配置VDO来优化存储空间
    如何使用wipefs命令擦除磁盘上的签名
    cpufetch – 查询cpu架构信息的工具
    告别App,数字人民币钱包来了
    微软拿掉“测试版”的头衔,正式推出Windows 11 PC健康检查工具
    Find命令查找最近几天修改的文件
    Linux中source命令的使用方式
    稍微停顿,在思考一下。
    旺旺协议分析相关资料
  • 原文地址:https://www.cnblogs.com/llfddmm/p/7878617.html
Copyright © 2011-2022 走看看