• 04、EL和JSTL核心技术


    目录

    1 EL表达式(熟悉)

    1.1 基本概念

    1.2 主要功能 

    1.3 访问内置对象的数据 

    1.3.1访问方式

    1.3.2 执行流程 

    1.4 访问请求参数的数据 

    1.5 访问Bean对象的属性 

     1.5.1 访问方式

    1.5.2 主要区别 

    1.6 访问集合中的数据 

    1.7 常用的内置对象 

    1.8 常用的运算符

    1.8.1 常用的算术运算符

    1.8.2 常用的关系运算符 

    1.8.3 常用的逻辑运算符

     1.8.4 条件运算符

     1.8.5 验证运算符

    2 JSTL标签(熟悉) 

     2.1 基本概念

     2.3 常用核心标签

     2.3.1 输出标签

     2.3.2 设置标签

     2.3.3 删除标签

     2.3.4 单条件判断标签

     2.3.5 多条件判断标签

     2.3.6 循环标签

     2.4 常用函数标签

     2.5 常用格式化标签

     2.6 自定义标签 


    1 EL表达式(熟悉)

    1.1 基本概念

    • EL(Expression Language)表达式提供了在JSP中简化表达式的方法,可以方便地访问各种数据并输出。

    1.2 主要功能 

    • 依次访问pageContext、request、session和application作用域对象存储的数据。
    • 获取请求参数值。
    • 访问Bean对象的属性。
    • 访问集合中的数据。
    • 输出简单的运算结果。

    1.3 访问内置对象的数据 

    1.3.1访问方式

    1. <%=request.getAttribute(“ varName”)%>
    2. 用EL实现: ${ varName }

    1.3.2 执行流程 

    1.4 访问请求参数的数据 

    •  在EL之前使用下列方式访问请求参数的数据
    1. request.getParameter(name);
    2. request.getParameterValues(name);
    • 在EL中使用下列方式访问请求参数的数据 
      param:接收的参数只有一个值。
      paramValues:接受的参数有多个值。
    1. ${param.name}
    2. ${paramValues.hobby[0]}

    1.5 访问Bean对象的属性 

     1.5.1 访问方式

    • 方式一: $ { 对象名 . 属性名 },例如:${user.name}
    • 方式二: $ { 对象名 [“属性名”] },例如:${user[“name”]}

    1.5.2 主要区别 

    • 当要存取的属性名中包含一些特殊字符,如: . 或 ,等并非字母或数字的符号,就一定要使用 [ ]而不是.的方式

    • 使用[]的方式可以动态取值,具体方式如下:

      1. <% request.setAttribute(“prop”,“age”); %>
      2. ${ user[prop] }

    1.6 访问集合中的数据 

    1. ${student[0].name}

    1.7 常用的内置对象 

    类别标识符描述
    JSPpageContextPageContext 处理当前页面
    作用域pageScope同页面作用域属性名称和值有关的Map类
    requestScope同请求作用域属性的名称和值有关的Map类
    sessionScope同会话作用域属性的名称和值有关的Map类
    applicationScope同应用程序作用域属性的名称和值有关的Map类
    请求参数param根据名称存储请求参数的值的Map类
    paramValues把请求参数的所有值作为一个String数组来存储的Map类
    请求头header根据名称存储请求头主要值的Map类
    headerValues把请求头的所有值作为一个String数组来存储的Map类
    Cookiecookie根据名称存储请求附带的cookie的Map类
    初始化参数initParam根据名称存储Web应用程序上下文初始化参数的Map类

    1.8 常用的运算符

    1.8.1 常用的算术运算符

    算术运算符说 明范 例运算结果
    +${1+2}3
    -${2-1}1
    *${2*3}6
    /或div${16/5}或${16div5}3.2
    % 或 mod取余${16%5}或${16mod5}1

    1.8.2 常用的关系运算符 

    关系运算符说 明范 例运算结果
    ==或eq等于${1==2}或${1 eq 2}false
    != 或ne不等于${2!=1}或${1 ne 2}true
    < 或lt小于${2<3}或${2 lt 3 }true
    > 或 gt大于${16>5}或${16 gt 5}true
    <= 或 le小于等于${16<=5}或${16 le 5}false
    >= 或 ge大于等于${16>=5}或${16 ge 5}true

    1.8.3 常用的逻辑运算符

    逻辑运算符说 明范 例运算结果
    && 或 and与运算${true&&true}或${true and true}true
    || 或or或运算${true||false}或${true or false}true
    ! 或not非运算${!true}或${not true }false

     1.8.4 条件运算符

    ${条件表达式? 语句1 : 语句2}
    

     1.8.5 验证运算符

    1. ${empty 表达式} 返回布尔值
    2. 判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值。

    2 JSTL标签(熟悉) 

     2.1 基本概念

    • 下载JSTL的jar包并添加到项目中,下载地址为:https://tomcat.apache.org/download-taglibs.cgi
    • 在JSP页面中使用taglib指定引入jstl标签库,方式为:
    1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

     2.3 常用核心标签

     2.3.1 输出标签

    <c:out></c:out> 用来将指定内容输出的标签
    

     2.3.2 设置标签

    <c:set></c:set> 用来设置属性范围值的标签
    

     2.3.3 删除标签

    <c:remove></c:remove> 用来删除指定数据的标签
    

     2.3.4 单条件判断标签

    1. <c:if test =“EL条件表达式”>
    2. 满足条件执行
    3. </c:if >

     2.3.5 多条件判断标签

    1. <c:choose >
    2. <c:when test =“EL表达式”>
    3. 满足条件执行
    4. </c:when>
    5. <c:otherwise>
    6. 不满足上述when条件时执行
    7. </c:otherwise>
    8. </c:choose >

     2.3.6 循环标签

    1. <c:forEach var=“循环变量” items=“集合”>
    2. </c:forEach>

     2.4 常用函数标签

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

     2.5 常用格式化标签

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

     2.6 自定义标签 

    • 如果上面几个标签不能满足需求,程序员也可以自定义标签,步骤如下:
    • 编写标签类继承SimpleTagSupport类或TagSupport类并重写doTag方法或doStartTag方法。
    1. public class TagTest extends SimpleTagSupport {
    2. private String name;
    3. public String getName() {
    4. return name;
    5. }
    6. public void setName(String name) {
    7. this.name = name;
    8. }
    9. @Override
    10. public void doTag() throws JspException, IOException {
    11. JspWriter out = this.getJspContext().getOut();
    12. out.println("自定义标签的参数为:" + name);
    13. }
    14. }
    • 定义标签库文件(tld标签库文件)并配置标签说明文件到到WEB-INF下:
    1. <tag>
    2. <name>helloTag</name>
    3. <tag-class>com.yy.demo01.TagTest</tag-class>
    4. <body-content>empty</body-content>
    5. <attribute>
    6. <name>name</name>
    7. <required>true</required>
    8. </attribute>
    9. </tag>
    •  在JSP中添加taglib指令引入标签库使用:
    <%@ taglib prefix="hello" uri="http://hyq.com" %>
    

  • 相关阅读:
    计算机毕业设计之java+javaweb的学生信息管理系统
    2022.07.29 Linux矩阵键盘驱动开发笔记2
    【Spring Cloud实战】SpringCloud Sleuth分布式请求链路跟踪
    11个开源测试自动化框架,如何选?
    生成器建造者模式(Builder)——创建型模式
    Ubuntu22.04 下安装驱动、CUDA、cudnn以及TensorRT
    [数据结构与算法] 线性表之单链表初始化详解
    docker虚拟网桥和业务网段冲突处理
    ​iOS安全加固方法及实现
    KNN分类算法
  • 原文地址:https://blog.csdn.net/kelouze06/article/details/133140395