• JSTL和EL详细笔记


    如果在 jsp 中嵌入 java 代码容易导致结构复杂,使得程序可读性差,不易维护。
    EL 表达式使 JSP 的开发变得更加简单
    EL 表达式的作用是来简化我们保存在作用域中的数据
    本章将实现无java代码嵌入的jsp页面开发

    EL表达式简介

     EL表达式语法

     按照page-request-session-application的作用域顺序依次查找,找到则返回,最终

    找不到返回 null

     通过变量值取值------>${变量名} ${requestScope.变量名}

    获取对象的属性值 ------>${ 对象 . 属性名 } ${ 对象名 [" 属性名 "]}
    获取集合元素 ------>${list 集合名称 [" 索引 "]} ${Map 集合名称 ["key"]} ${Map 集合名称 . key}
    注意:如果 map key 值是数值,类型一定要是长整型的 integer ,同时要使用 ${Map集合名称["key"]}这种方式获取值Map< 对象数据类型 , >
    执行表达式 ------> 关系操作符、逻辑操作符、 Empty 操作符

     

     EL隐式对象

    参数访问对象:是与页面输入参数有关的隐式对象,通过他们可以得到用户的请求参数

    参数访问对象 param paramValues 区别
    param 对象用于得到请求中单一名称的参数
    paramValues 对象用于得到请求中的多个值
    JSP 隐式对象
    他是 jsp el 的一个公共对象,通过 pageContext 可以访问其他八个 JSP 内置对象

    JSTL

     

    JSTL jsp 标准标签库
    优点:提供了一组标准标签;可以用于编写各种动态功能
    使用 JSTL 的步骤: (myeclips 默认带了对 jstl 的支持,而 eclipse 没有 )
    1) 引入 jstl jar 文件 jstl.jar standard.jar
    2) jsp 页面添加 taglib 指令
    <%@ taglib uri = "http://java.sun.com/jsp/jstl/cor
    e" prefix = "c" %>
    taglib 指令通过 uri 属性引用某个标签库的配置文件, jsp 页面通过 prefifix 属性指定的前缀即可访问该标签库中的某个标签功能,语法如 标签名 >
    3) 使用 jstl 标签

     通用标签

    通用标签用于在 jsp 页面内设置 ,显示 和删除 变量
    标签
    标签用于设置作用域变量的值或者作用域变量的属性值
    语法 1 :设置指定范围内的变量值
    设置的变量名 " value=" 赋予变量的值 " scope=" 变量的作用域 "/>
    注意:作用域可选的值 page( 默认 ) request session application
    语法 2 :将 value 值设置到对象的属性中
    操作该对象 使用 el 表达式 " property=" 该对象的属性名 " value=" 赋予该对象属性的值"/>

     标签

    标签用于将计算的表达式结果输出显示
    语法 1 :设置值
    value 属性指需要输出的表达式的运算结果,可以通过 EL 表达式来获取
    语法 2 :指定默认值
    default 属性是 value 属性值为空时输出的默认值。
    语法 3 :转换特殊字符
    标签还有一个 escapeXml 属性,表示是否转换特殊字符,用于指定在
    使用 标签输出诸如 "<" ">" " "& 之类在 HTML XML 中具有特殊意
    义的字符时是否应该进行转义。 escapeXml 属性设置为 true ,则会自动进行转
    义处理,这也是默认值。

     从效果上可以看出将标签的属性escapeXml设置为false与直接使用el

    表达式效果相同。
    标签
    删除指定范围内的变量
    语法:
    指定移除的变量名 " scope=" 移除变量所在的作用域 "/>

     条件标签

    JSTL 的条件标签包括
    用于实现 JAVA 语言中 if 语句的功能
    语法:
    判断条件 ( 可以用 EL 表达式 )" var=" 变量 " scope=" 变量的存储范围 ">
    ......... 主体部分 ....
    test 属性是判断条件,可以用 EL 表达式,结果为 true 时,会执行主体部分,为 false不会执行
    var 属性定义变量,该变量存放判断的结果,该属性可省略
    scope 属性是指 var 定义变量的存储 范围,可选值有 page request session、 application,该属性可省略
    一起实现互斥条件的执行,类似于 java 语言的if-else if -else 语句
    语法:
     
       内容 1
     
     
       内容 2
     
     
          内容 n 与上面的 when 都不匹配 才执行的
     

     迭代标签

    JSTL 的迭代标签
    语法 1 :遍历集合对象的成员
    当前成员的引用 " items=" 集合对象 " varStatus=" 存放 var 引用成员
    的相关信息,如索引等 "
          begin=" 开始位置 可省略 " end=" 结束位置 可省略 " step=" 循环的步长 可省略 ">
          ... 循环体代码 ...

     

    语法 2 :指定迭代的次数
    当前成员的引用 " varStatus=" 存放 var 引用成员的相关信息,如索
    引等 "
          begin=" 开始位置 可省略 " end=" 结束位置 可省略 " step=" 循环的步长 可省略 ">
            ... 循环体代码 ...
    格式 2 与格式 1 的区别:格式 2 不是对一个集合对象的遍历,而是根据指定的 begin 属性、end 属性以及 step 属性执行主体内容固定的次数

     

     

     二道小问题

    一、 JSTL 中常用的标签有哪些
    答案:
    JSTL提供的常用标签包括:通用标签,迭代标签,条件标签
    通用标签:主要是在 JSP 页面中实现对变量的设置,删除和显示
    迭代标签:主要是为了在 JSP 页面中实现对集合对象的循环遍历,显示集合元素
    条件标签:主要是实现条件判断
    二、 EL 表达式中提供了哪几个隐式对象?分别有什么作用?
    EL的隐式对象包括:作用域访问对象,参数访问对象, JSP 隐式对象。
    作用域访问对象:在相应的范围内对属性名及属性值进行映射
    1、 pageScope 对象
    2、 requestScope 对象
    3、 sessionScope 对象
    4、 applicationScope 对象
    参数访问对象 :
    1、 param 对象:将请求中的参数的名字和单个的字符串值进行映射,主要是用于获取参数值。
    2、 paramValues 对象:将请求中的参数名字和一个包含了该参数所有值的 String 类型的数组进行映
    射,主要用于获取请求中的参数值。
    JSP隐式对象: pageContext ,利用该对象可以对 Servlet 以及 JSP 的上下文进行访问,实现 JSP 之间的 共享数据。

     

  • 相关阅读:
    Flutter快学快用02 事件循环:Flutter 中代码是如何执行和运行的
    自动驾驶与车路协同
    软考高频考点——项目中标了以后该怎么做?
    使用三丰云免费主机搭建zerotier网络
    神经网络中的三大概念是:反向传播,梯度下降,损失函数。
    c++ 可变参数模版 & 编译期排序
    java nodejs python小学生兴趣延时班预约系统 php小程序
    5.汉诺塔问题-(递归)
    NPDP考试倒计时,如何高效提分?
    [论文笔记]SiameseNet
  • 原文地址:https://blog.csdn.net/weixin_47541976/article/details/126459211