JSP之EL表达式与JSTL标准标签库

EL表达式

EL(Expression Language 表达式语言)定义了一系列隐含对象和操作符,无须Java代码即可方便地访问pageContext、request、session、application作用域中的对象。

1、EL表达式显示数据
  1. 基本数据类型与String类型:
    在这里插入图片描述

在这里插入图片描述

  1. 自定义类型:
    a、在页面中要显示的自定义类成员变量必须要有对应的getter方法
    b、如何显示:${ key(setAttribute中的key).成员变量名 }
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 集合或数组:
    ①List集合
    在这里插入图片描述
    ②数组:
    在这里插入图片描述
    在这里插入图片描述
    ③Set集合:无法获取单个元素,但可以使用< c:forEach ></ c:forEach >遍历set集合中元素。
    ④Map集合:
    在这里插入图片描述

注意:

  1. Map集合的key应该符合Java标识符规范,如果不符合,则在EL表达式中不能使用.的方式获取到Map相应的value,只能通过[]的方式获取到相应的value。
  2. Map集合key的泛型不能是Java基本数据类型的包装类,否则EL表达式无论使用那种方式都无法获取到相应的value。

点和[ ]操作符:

  1. 点操作符:EL表达式通常由两部分组成:对象和属性。在EL表达式中,可以使用点操作符来访问对象的属性,例如$ {user.id}就是访问user对象的id属性。
  2. [ ]操作符: [ ]操作符也可以访问对象的属性,例如$ {user.id}也可以写成$ {user[“id”]}。当要存取的属性名称中包含一些特殊字符,如“.”或“-”等非字母或数字的符号时,就需要使用[ ]操作符。例如$ {user.my.id}应当改为$ {user[“my.id”] }。当动态取值时,需要用[ ]操作符来做,而点操作符无法做到动态取值,例如在$ {sessionScope.user[index] }中,index是一个变量。
2、EL表达式中的运算符
  1. 运算符号:+、-、*、/或div(没有按照最高精度保留结果的特点)、%或mod、三目运算符。
    两目运算符:
    在这里插入图片描述
    三目运算符:
    在这里插入图片描述
  2. 关系运算符:==或eq、!=或ne、<或lt(即less than)、>或gt(即great than)、<=或le、>=或ge。
    在这里插入图片描述
  3. 逻辑运算符:&& 或 and、|| 或 or、! 或 not(注意:只能对boolean型数据运算)
    在这里插入图片描述
  4. empty运算符
    在这里插入图片描述
    如果集合或数组中没有数据,或者其值为null,则empty判断为true,not empty判断为false。

jstl标签库

JSTL(JSP Standard Tag Library,JSP标准标签库)是一个开源代码的JSP标签库。

1、jstl函数库
  1. 如何使用: a、向web工程lib文件中导入相应的jstl jar文件 b、引入jstl函数库
    在这里插入图片描述
    注意:jstl函数只能在${}中使用。
  2. fn:toLowerCase:返回字符串小写格式。
  3. fn:toUpperCase:返回字符串大写格式。
    在这里插入图片描述
  4. fn:trim:返回删除原字符串首尾空格后的字符串
  5. fn:length:返回字符串、集合或数组的长度
    在这里插入图片描述
    注意:${}中可以有多个jstl函数嵌套使用
    在这里插入图片描述
  6. fn:split:返回依照指定字符串分隔符分割的字符串数组数,第一个参数为待分割字符串,第二个参数为字符串分隔符。
    在这里插入图片描述
  7. fn:join:依照字符串间隔符连接字符串数组元素并返回合并后的结果字符串,第一个参数为待合并的字符串数组,第二个参数为间隔符字符串。
    在这里插入图片描述
  8. fn:indexOf:返回指定字符串在某个字符串中第一次出现的索引值,返回值为int类型,如果没有找到则返回-1,第一个参数为待查找的字符串,第二个参数为要查找的字符串。
    在这里插入图片描述
  9. fn:contains:判断一个字符串中是否包含指定的字符串,第一个参数为待判断字符串,第二个参数为判断字符串,返回值为布尔类型。该函数对比较的两个字符串大小写敏感,而fn:containsIgnoreCase则对大小写不敏感。
    在这里插入图片描述
    在这里插入图片描述
  10. fn:startsWith:判断某个字符串是否以指定字符串开头,返回值为布尔类型。
  11. fn:endsWith:判断某个字符串是否以指定字符串结尾,返回值为布尔类型。
    在这里插入图片描述
  12. fn:replace:将某个字符串中包含的指定子字符串替换为其它的指定字符串,并返回替换后的结果字符串。第一个参数为原字符串,第二个参数为原字符串中要被替换的子字符串,第三个参数为被替换成的字符串。
    在这里插入图片描述
  13. fn:substring:用于截取某个字符串并返回截取到的子字符串。第一个参数为源字符串,第二个参数为截取开始的索引值,第三个参数为截取结束的索引值,其中第二个参数和第三个参数都是int类型,其值都从0开始。
    在这里插入图片描述
  14. fn:substringAfter:用于截取并返回一个字符串中的指定字符串第一次出现之后的字符串。第一个参数为源字符串,第二个参数为指定字符串。
  15. fn:substringBefore:用于截取并返回一个字符串中的指定字符串第一次出现之前的字符串。第一个参数为源字符串,第二个参数为指定字符串。
    在这里插入图片描述
2、jstl标签库
  1. 如何使用: a、向web工程lib文件中导入相应的jstl jar文件 b、引入jstl标签库
    在这里插入图片描述
  2. out标签,该标签用于显示数据:
    <c:out value=”所显示的数据” [ escapeXml=“true|false” ] [ default=“默认值” ] />,其中escapeXml属性用来设定是否对所显示的数据中的html标签或者JavaScript脚本进行解析,默认true,即不解析;default属性用于设置默认值,该默认值在value没有数据的情况下显示。
    原样输出,相当于escapeXml=“true”时:
    在这里插入图片描述
    JavaScript脚本会执行:
    在这里插入图片描述
  3. set标签,该标签用于在jsp中声明变量:
    <c:set var=”key” value=”值”[scope=”page|request|session|application”]/>,scope用于指定把一个变量名为key值为“值”的变量存储范围标签。
    jsp页面显示小王,同属一个工程中的其它含有${userName}的jsp页面不会显示小王,因为这时数据默认适用范围为page
    在这里插入图片描述
    其所在jsp页面显示小王,同属一个工程中的其它含有${ userName }的jsp页面也会显示小王。
    在这里插入图片描述
  4. remove:该标签用于移除指定的scope范围内的变量。
    <c:remove var=”变量名” [scope=”page|request|session|application”]/>
    在这里插入图片描述
  5. if 标签:该标签和Java中的if条件语句一样,用于实现条件控制。
    在这里插入图片描述
  6. choose标签、when标签和otherwise标签:这三个标签一般一起使用,用于构造类似Java中 “if-else if-else” 的复杂条件判断。注意:choose标签是其它两个标签的父标签。
    在这里插入图片描述
  7. forEach标签:用于遍历集合或数组中的数据,如下语法:
    <c:forEach var=”name” items=”集合或数组” [varStatus=“status”] [begin=“begin”] [end=“end”] [step=“step”]>
    循环体
    </c:forEach>
    ①var设定变量名,该变量名用于存储从集合或数组中遍历出来的元素数据。
    ②items指定要遍历的集合。
    ③varStatus设定变量名,该变量名保存了循环进行过程中的状态信息,
    包括:index(当前循环索引)、count(循环的次数)、first(是否为第一个位置)和last(是否为最后一个位置)。
    ④begin、end用于指定遍历的起始位置和终止位置。
    ⑤step指定循环的步长,默认为1。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值