• JSTL标签库和EL表达式


    Java知识点总结:想看的可以从这里进入

    6.7、JSTL和EL

    1、JSTL

    JSTL是jsp的一个标准标签库,封装了jsp应用的通用核心功能。它支持迭代、条件判断、XML文档操作、国际化标签、SQL标签等,另外还提供了一个框架集成JSTL的自定义标签。

    • JSTL的安装

      依赖JSTL

      
      <dependency>
          <groupId>javax.servletgroupId>
          <artifactId>jstlartifactId>
          <version>1.2version>
      dependency>
      
      <dependency>
          <groupId>taglibsgroupId>
          <artifactId>standardartifactId>
          <version>1.1.2version>
      dependency>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    • 核心标签库

      • 导入核心标签库

        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
        
        • 1
        1、 
            标签   与<%= %>的作用类似
        	属性:value	  要输出的内容,必须存在,无默认值
        		 default	输出的默认值
        		 escapeXml	是否忽略XML特殊字符,默认值 true
        		 
        2、 标签       
            用于设置变量值和对象属性,并保存。和标签作用类似
        	属性:value=""    要存储的值
        		 target=""	  对象的名字
        		 property	对象内的属性名(如果指定了target属性,那么property属性也需要被指定。)
        		 var	存储信息的变量	
        		 scope	var属性的作用域,默认为page(当前页)
        			  
        3、 
            标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。不是特别有用
        
        4、... 
            标签处理产生错误的异常状况,将错误信息储存起来。
        
        5、...
            标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。
        
        6、
            	循环内容
           
           	标签用于迭代循环,forEach循环
        
        7、
            		
                	...
            	
            	
                    ...
            	
           		 ...
            	
                ...
            	
           
            标签与Java switch语句的功能一样,用于在众多选项中做出选择。
        
        8、
            标签将URL格式化为一个字符串,然后存储在一个变量中。var属性用于存储格式化后的URL。
            
        9、
            签用于在标签中指定参数
        
        9、
            标签通过自动重写URL来将浏览器重定向至一个新的URL
            
        10、 
            	
        根据指定的分隔符来分隔内容并迭代输出 11、 加载一个页面。提供了所有行为标签所具有的功能
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
        • 31
        • 32
        • 33
        • 34
        • 35
        • 36
        • 37
        • 38
        • 39
        • 40
        • 41
        • 42
        • 43
        • 44
        • 45
        • 46
        • 47
        • 48
        • 49
        • 50
        • 51
        • 52
        • 53
        • 54
        • 55
        • 56
        • 57
        • 58
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    
       Title
    
    
       

    set设置属性值

    用户名:

    set设置变量,remove移除变量,并用if判断是否移除

    变量: c:out value="${test}"/>

    测试forEach

    <% int[] ints ={1,2,3,4,5}; request.setAttribute("ints",ints); %>

    (索引:, 迭代的次数 , 是否为第一个位置: )

    测试catch


    测试choose系列标签


    测试分割


    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76

    在这里插入图片描述

    • 格式化标签

      <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
      
      • 1
      1、 标签用于格式化数字,百分比,货币。
      	
      
      2、用于使用不同的方式格式化日期。
      	
      
      3、 指定时区
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
    • JSTL函数

      <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
      
      • 1
      1、确定一个字符串是否包含指定的子串
      	不忽略大小写:fn:contains() 
                  
                      ...
                  
      	忽略大小写:fn:containsIgnoreCase()
      
      2、fn:endsWith()	函数用于确定一个字符串是否以指定后缀结尾。
      	
      		...
      	
      
      3、fn:indexOf()	函数返回一个字符串中指定子串的位置。
      	${fn:indexOf(<原始字符串>,<子字符串>)}
              
      4、fn:join()	函数将一个数组中的所有元素使用指定的分隔符来连接成一个字符串。
          ${fn:join([数组], <分隔符>)}
              
      5、fn:length()	函数返回字符串长度或集合中元素的数量。
          ${fn:length(""}
       
      6、fn:replace()	函数将字符串中所有指定的子串用另外的字符串替换。
          ${fn:replace(<原始字符串>, <被替换的字符串>, <要替换的字符串>)}
              
      7、fn:split() 	函数将一个字符串用指定的分隔符分裂为一个子串数组。
          ${fn:split(<待分隔的字符串>, <分隔符>)}
              
      8、fn:startsWith()	函数用于确定一个字符串是否以指定的前缀开始。
          
               ...
      	
              
      9、fn:substring()	函数返回字符串中指定开始和结束索引的子串。
         	${fn:substring(, , )}
              
      10、fn:trim()函数将字符串两端的空白符移除。
           ${fn:trim()}
              
      11、转换大小写
            大写→小写:${fn.toLowerCase()}
            小写→大写:${fn:toUpperCase()}
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
    2、EL表达式

    EL表达式主要配合JSTL一起使用:主要用于获取数据、执行计算、获取web开发中的常用对象。

    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <%--isELIgnored="false|true"  true EL表达式就会被忽略当成字符串,false将会计算EL表达式。--%>
    
    • 1
    • 2
    一个简单的表达式语法如下:
    ${表达式}
    
    • 1
    • 2
    操作符描述
    .访问一个属性或者一个映射条目
    []访问一个数组或者链表的元素
    ( )组织一个子表达式以改变优先级
    +
    -减或负
    *
    / or div
    % or mod取模
    == or eq测试是否相等
    != or ne测试是否不等
    < or lt测试是否小于
    > or gt测试是否大于
    <= or le测试是否小于等于
    >= or ge测试是否大于等于
    && or and测试逻辑与
    || or or测试逻辑或
    ! or not测试取反
    empty测试是否空值

    JSP EL允许在表达式中使用JSTL函数。这些函数必须被定义在自定义标签库中。函数的使用语法如下:

    ${fn:length("Get my length")}		返回字符串长度
    
    • 1

    JSP EL支持下表列出的隐含对象:

    隐含对象描述
    pageScopepage 作用域
    requestScoperequest 作用域
    sessionScopesession 作用域
    applicationScopeapplication 作用域
    paramRequest 对象的参数,字符串
    paramValuesRequest对象的参数,字符串集合
    headerHTTP 信息头,字符串
    headerValuesHTTP 信息头,字符串集合
    initParam上下文初始化参数
    cookieCookie值
    pageContext当前页面的pageContext
  • 相关阅读:
    电脑屏幕花屏怎么办?5个方法解决问题!
    【JavaEE初阶】网络原理|认识协议|协议分层|TCP/IP模型|封装和分用
    Linux C/C++ 学习笔记(五):Mysql C/C++编程 创建 插入 读取 删除 存储过程
    Auto.js脚本开发入门
    代码随想录算法训练营第五十二天| 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费
    高数_第3章重积分_在极坐标下计算二重积分之2
    ubuntu安装electerm
    【HarmonyOS NEXT】鸿蒙customScan (自定义界面扫码)
    Git 学习笔记
    C++基础——内存分区模型
  • 原文地址:https://blog.csdn.net/yuandfeng/article/details/126751614