EL表达式和JSTL标签库详解

1.EL表达式

1.1什么是EL表达式?

EL表达式的全称是:Expression Language. 是表达式语言

1.2EL表达式的作用

EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出

因为EL表达式在输出数据时,要比jsp脚本简洁很多。

EL表达式的格式是:

${表达式}
1.3EL表达式搜索域数据的顺序

EL表达式主要是在jsp页面中输出数:主要输出的数域对象中的数据

当四个域中都有相同的key的数据的时候,EL表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。

1.4EL表达式输出复杂的Bean对象
  1. 需求一一输出Peoson类中的普通属性,数组属性。List集合属性和map集合属性。
1.5EL表达式——运算

语法:${ 运算表达式 }, EL表达式支持如下运算符:

1.5.1关系运算
关系运算符说明范例结果
== 或 eq等于${ 5==5 } 或 ${ 5 eq 5}true
!= 或 ne不等于${ 5 !=5 } 或 ${ 5 ne 5}false
< 或 lt小于${ 3<5 } 或 ${ 3 lt 5 }true
> 或 gt大于${ 2>10 } 或 $ {2 gt 10}false
<= 或 le小于等于${ 5<=12 } 或 ${ 5 le 12}true
>= 或 ge大于等于${ 3>= 5} 或 {3 ge 5 }false
1.5.2逻辑运算
逻辑运算符说明范例结果
&& 或 and与运算KaTeX parse error: Expected '}', got '&' at position 10: {12 ==12 &̲& 12<11}或 {12 == 12 and 12 <11}false
|| 或 or或运 12 = = 12 ∣ ∣ 12 < 11 或 {12 ==12 || 12<11}或 12==1212<11 {12 == 12 or 12 <11}true
! 或 not取反运算KaTeX parse error: Expected 'EOF', got '}' at position 7: !true }̲或{not true }false
1.5.3算数运算
算数运算符说明范例结果
+加法${ 12 + 18}30
-减法${ 18 - 8 }10
*乘法${ 12*12 }144
/ 或 div除法${ 144/12 } 或 ${ 144 div 12}12
% 或 mod取模${ 144%10} 或 ${ 144 mod 10}4
1.5.4empty运算

empty运算可以判断一个数据是否为空,如果为空,则输出 true, 否则输出false

以下几种情况为空:

  1. 值为null 值的时候,为空
  2. 值为空串的时候,为空
  3. 值是object类型数组,长度为零的时候
  4. list集合,元素个数为零
  5. map集合,元素个数为零
1.5.5三元运算
1.5.6"."运算和 [] 中括号运算符

. 点运算,可以输出Bean对象中某个属性的值

[] 中括号运算,可以输出有序集合中某个元素的值,可以输出map集合中key里含有特殊字符的key的值。

1.6EL表达式的11个隐含对象

是EL表达式中自己定义的,可以直接使用

变量类型作用
pageContextPageContextImpl它可以获取jsp中九大内置对象
pageScopeMap<String,Object>它可以获取pageContext域中的数据
requestScopeMap<String,Object>它可以获取Request域中的数据
sessionScopeMap<String,Object>它可以获取Session域中的数据
applicationScopeMap<String,Object>它可以获取SetvletContext域中的数据
paramMap<String,String>它可以获取请求参数的值
paramValuesMap<String,String[]>它可以获取多个请求参数的值
headerMap<String,String>它可以获取请求头的信息
headerValuesMap<String,String[]>它可以获取请求头的信息,它可以获取多个值的情况
cookieMap<String,Cookie>它可以获取当前请求的Cookie信息
initParamMap<String,String>他可以获取在web.xml中配置的上下文参数

2.JSTL标签库

2.1JSTL简介

JSTL标签库全称是指JSP Standard Tag Library JSP标准标签库。是一个不断完善的开放源码的JSP标签库

EL表达式主要是为了替换JSP中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个JSP页面变得更加简洁。

JSTL主要由五个不同功能的标签库组成

功能范围URL前缀
核心标签库–重点http://java.sun.com/jsp/jstl/corec
格式化http://java.sun.com/jsp/jstl/fmtfmt
函数http://java.sun.com/jsp/jstl/functionsfn
数据库(不使用)http://java.sun.com/jsp/jstl/sqlsql
XML(不使用)http://java.sun.com/jsp/jstl/xmlx

在jsp标签库中使用taglib指令引入标签库

CORE 标签库

<%@ taglib prefix=“c” url=“http://java.sun.com/jsp/jstl.core” %>

2.2JSTL标签库的使用步骤
  1. 先导入jstl标签库的jar包

  2. 第二步,使用taglib指令引入标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2.2.1core核心库使用
  1. <c:set/ >—— 作用:set标签可以往域中保存数据
  2. <c:if /> —— if标签用来做if判断
  3. <c:choose > <c:when > <c:otherwise > 标签——多路判断。跟 swith … case …default 非常接近
  4. <c:forEach > 标签——遍历输出使用
//遍历list集合
// items 表示遍历的集合  var表示遍历到的数据 begin表示遍历的开始索引值 end 表示结束的索引值 step 属性表示遍历的步长值
// varStatus 属性表示当前遍历到的数据的状态
<%
    List<Student02> studentList = new ArrayList<>();
    for (int i = 1; i <= 10; i++) {
        studentList.add(new Student02(i,"name"+i,123+i,18+i,10010+i));
    }
    request.setAttribute("stus",studentList);
%>
    <table>
        <tr>
            <th>编号</th>
            <th>用户名</th>
            <th>密码</th>
            <th>年龄</th>
            <th>手机号</th>
            <th>操作</th>
        </tr>
    <c:forEach items="${requestScope.stus}" var="stu">
        <tr>
            <td>${stu.id}</td>
            <td>${stu.name}</td>
            <td>${stu.password}</td>
            <td>${stu.age}</td>
            <td>${stu.phone}</td>
            <td>删除、修改、新增 </td>
        </tr>
        ${stu} <br>
    </c:forEach>
    </table>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值