• EL表达式与JSTL标签


    目录

    一、EL表达式

    1、EL操作符

    2、EL功能

    3、EL访问作用域

    二、JSTL标签

    1、JSTL使用步骤

    2、JSTL标签分类

    3、JSTL标签的使用


    一、EL表达式

    Expression Language表达式语言,用于简化JSP页面内的Java代码主要功能:获取数据

    语法: 

    ${expression}

    获取域中存储的key为brands的数据

    1、EL操作符

    1、操作符“.”

    获取对象的属性,例如:${news.title}

    2、操作符“[ ]

    获取对象的属性,例如:${news["title"]}

    获取集合中的对象,例如:${newsList[0]}

    EL运算符

    运算符说明

    ( )

    改变执行的优先级,例如${3*(4+5)}

    +,-,*,/,%

    算术运算符,例如${3+2}

    ==,!=,>,>=,<,<=

    关系运算符,例如${a==b}${a eq b}

    &&,||,!

    逻辑运算符,例如${true&&false}

    ?:

    条件运算符,例如${a>b?1:2}

    empty

    用于检测变量名是否为空,是否等于NULL,例如${empty name}

    关系运算符示例结果

    == eq

    ${5 == 5}${5 eq 5}

    true

    != ne

    ${5 != 5}${5 ne 5}

    false

    < lt

    ${3 < 5}${3 lt 5}

    true

    > gt

    ${3 > 5}{3 gt 5}

    false

    <= le

    ${3 <= 5}${3 le 5}

    true

    >= ge

    ${3 >= 5}${3 ge 5}

    false 

    2、EL功能

    取得JavaBean对象的属性

    ${news.title}
    

     取得数组、List、Map类型对象的元素

    ${list[0]}
    

     使用各类运算符对原始数据进行简单处理

    ${totalRecordCount/pageSize}
    

     屏蔽一些常见的异常

    ${username}
    

     能实现简单的自动类型转换

    ${news}相当于(News)request.getAttribute("news")
    

    3、EL访问作用域

    两种方式取数据:

    使用Java小脚本:request.getAttribute("news");

    使用EL表达式:${ news } 或者 ${ requestScope.news }

    JavaWeb中的四大域对象:

    作用域Java代码取值EL取值

    请求作用域

    request.getAttribute("news");

    ${ requestScope.news }

    会话作用域

    session.getAttribute("username");

    ${ sessionScope.username }

    程序作用域

    application.getAttribute("count");

    ${ applicationScope.count }

    页面作用域

    pageContext.getAttribute("userNum");

    ${ pageScope.userNum }

    el表达式获取数据,会依次从这4个域中寻找,直到找到为止

    二、JSTL标签

    JSP标准标签库(Jsp Standarded Tag Library),使用标签取代JSP页面上的Java代码

    1、JSTL使用步骤

    1、下载jstl.jarstandard.jar

    2、将这两个包复制到WEB-INF\lib目录

    3、在JSP页面中添加指令

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

    2、JSTL标签分类

    标签库资源标识符前缀

    核心标签库

    http://java.sun.com/jsp/jstl/core

    c

    国际化/格式化标签库

    http://java.sun.com/jsp/jstl/fmt

    fmt

    XML标签库

    http://java.sun.com/jsp/jstl/xml

    x

    数据库标签库

    http://java.sun.com/jsp/jstl/sql

    sql

    函数标签库

    http://java.sun.com/jsp/jstl/functions

    fn

    核心标签库

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

    国际化/格式化标签库

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

    3、JSTL标签的使用

    标签

    语法:

    1. value="value":需要输出显示的表达式
    2. default="default":默认输出显示的值
    3. escapeXml="true|false":是否对输出的内容进行转义
    4. <c:out value="value" default="default" escapeXml="true|false" />

    设置变量

    1. var="name" :表示变量名称
    2. value= "value":表示变量的值
    3. scope="scope":存在的作用域
    4. <c:set var="name" value= "value" scope="scope" />

    设置对象属性

    1. value= "value":表示属性的值
    2. target="target":表示对象
    3. property="propertyName":表示对象的属性名称
    4. <c:set value= "value" target="target" property="propertyName" />

    标签

    <c:forEach/>迭代标签:实现对集合的遍历

    1. var="varName":集合中元素的名称
    2. items="items":集合对象
    3. varStatus="varStatus":当前循环的状态信息,例如循环的索引号
    4. <c:forEach var="varName" items="items" varStatus="varStatus">
    5. ……
    6. </c:forEach>

    标签

    <c:if/>条件标签:实现条件的判断

    1. var="varName":判断的结果
    2. scope="scope":判断结果存放的作用域
    3. <c:if test="condition" var="varName" scope="scope">
    4. ……
    5. </c:if>

    使用JSTL构建URL

    <c:url/>超链接标签

    <c:url  value="url" />
    

    <c:param/>参数标签

    1. name="name":参数的名称
    2. value="value":参数的值
    3. <c:param name="name" value="value"/>

    <c:import/>导入标签

    1. url="URL":导入资源的路径
    2. <c:import url="URL" />

    标签

    <fmt:formatDate/>格式化标签:实现格式化的日期和时间显示

    1. value="date":时间对象
    2. pattern="yyyy-MM-dd HH:mm:ss":显示格式
    3. <fmt:formatDate value="date" pattern="yyyy-MM-dd HH:mm:ss"/>
    标签名作用

    输出文本内容到out对象,常用于显示特殊字符,显示默认值

    在作用域中设置变量或对象属性的值

    在作用域中移除变量的值

    实现条件判断结构

    实现循环结构

    构造url地址

    url后附加参数

    在页面中嵌入另一个资源内容

    <fmt:formatDate/>

    格式化时间

    <fmt:formatNumber/>

    格式化数字

  • 相关阅读:
    phpinfo为关键的getshell方法
    RTMP协议解析
    MyBatis-Plus(二、常用注解)
    excel split text into different rows
    C++中有哪些常用的算法和数据结构?
    多台电脑之间共享、传输文件数据:不借助数据线与软件的方法
    深入理解数组
    力扣每日一题 网络信号最好的坐标
    电力电子的一些知识
    数据库期末考前复习题(单选+多选+判断+解答)
  • 原文地址:https://blog.csdn.net/qi341500/article/details/127416522