EL和JSTL的使用

EL和JSTL-01的使用

前言

为在编写JSP时提高体验感,学习EL表达式和JSTL标签库

一、EL、JSTL是什么?

EL 表达式 :
全称:Expression Language,一种写法非常简洁的表达式。语法简单易懂,便于使用。原是JSTL1.0中取存数据的自定义语言,后是jsp2.0的规范之一特点语法简单使用方便,只拿来做输出.
EL 表达式的作用 :
让 jsp 书写起来更加的方便。简化在 jsp 中获取作用域或者请求数据的写法。也会搭配 Jstl 来进行使用。
在这里插入图片描述
EL特点:
可与JSTL及Javascript语句结合使用
自动执行类型转换
直接访问JavaBean中的属性嵌套届性
·集合对象可执行运算
·算术、迄辑、关系、条件可获得命名空间(的对象)除ü没有异常
可访问作用域对象
扩展函数可以与java里的静客方法执行映射。

JSTL 标签库:
1)JSTL 是 apache 对 EL 表达式的扩展(也就是说 JSTL 依赖 EL),JSTL是标签语言!JSTL 标签使用起来非常方便,它与 JSP 动作标签一样,只不过它不是 JSP 内置的标签,需要我们自己导包,以及指定标签库 而已!
2)如果你使用 MyEclipse 开发 JavaWeb,那么在把项目发布到Tomcat 时,你会发现,MyEclipse 会在 lib 目录下存放 jstl 的 Jar 包!如果你没有使用 MyEclipse 开发那么需要自己来导入这个 JSTL 的 Jar包:jstl-1.2.jar。
JSTL 标签库的作用:
用来提升在 JSP 页面的逻辑代码的编码效率,使用标签来替换逻辑代码的直接书写,高效,美观,整洁,易读。

二、使用步骤

1.使用 EL 表达式 :

使用 EL 表达式 :
EL使用条件:

Web服务器支持Servlet2.4/JSP2.0EL表达式未禁用
-禁用方法
·
·<%@ page isELlgnored="true”%>. web.xml中配置元素正确使用表达式

1 .EL表达式获取请求数据

1)获取请求实体(获取用户请求数据)

2)获取请求头数据

3)获取Cookie数据

  1. EL表达式获取作用域数据

作用域对象:pageContext—request—session—application

作用域:使用setAttribute方法存储的数据

获取:1)普通字符串数据–> ${键名}

2) 对象数据—> ${键名.属性名}

3)集合数据

a)list集合—> ${键名[角标]}

b)Map集合—> ${Map集合作用域储存的键名.Map集合储存的数据的键名}

作用域查找顺序:

1)如果找到了就不再找了;如果找不到,则继续查找下一个作用域;如果四个作用域都没有找到,则网页没有反馈。

2)pageContext—>request—>session—>application

指定作用域获取数据:

3.EL表达式逻辑运算

1)算术运算:+,-,*,/ 在EL表达式中可以直接进行算术运算

声明格式–> 算 术 表 达 式 例 如 : {算术表达式} 例如 : :{1+2}

注意: +(加号)表示算数运算,不能进行字符串连接

2)逻辑运算:&& || !

声明格式–> ${逻辑表达式}

注意:没有单& 和单|

3)比较运算:== != >,>=,<,<=

声明格式–> ${比较表达式}

3)三目运算:

声明格式–> ${条件?值1:值2}

4)EL表达式的empty判断

empty—>作用:判断该键没有储存有效数据。—>有值返回false;没值返回true。

2.使用JSTL

使用JSTL的流程:
在这里插入图片描述
在这里插入图片描述

1)先导入jar包(myEclipse自带JSTLjar包,不需要导入);

2)再引入核心标签库。

如何在jsp中引入标签

1)out标签:

<c:out value=“${表达式}” default=“默认值”></c:out>
结合EL表达式将数据响应给浏览器
<%=request.getAttribute(“str”) %>

2)set标签:

<c:set value=“set标签学习2” var=“s2” scope=“request”></c:set>
将数据存储到指定的作用域中,默认是pageContext作用域(page)
<%request.setAttribute(“s1”,“set标签学习”); %>

3)remove标签

<c:remove var=“要删除数据的键名” scope=“作用域名”/>
pageContext.removeAttribute(“hello”,4);此方法会将四个作用域中的符合要求的数据全部删除。
request.removeAttribute(“hello”);
session.removeAttribute(“hello”);
application.removeAttibute(“hello”);

删除作用域中的数据,默认是删除四个作用域中的符合要求的数据。
remove标签注意事项:remove标签要指定作用域scope,如果没有指定,则默认为page。

4)if标签

a.单分支判断标签:
在这里插入图片描述

if标签注意事项:test属性中书写的是EL表达式,该标签只能进行EL表达式相关的逻辑判断。

5)多分支choose标签

choose标签的使用基本格式:
在这里插入图片描述

choose标签注意事项:符合条件后只会执行一个分支,其他分支不会执行。

6)循环标签普通循环
循环标签的begin和end属性的作用:
begin:声明循环的开始位置。
end:声明循环的结束位置。
环标签的step属性和varStatues属性的作用:
step:声明循环的步长(即每次递增多少)
varStatus:声明变量记录循环状态(包括 index,count,first,last)

c. varStatus属性获取循环状态的内容都有哪些及其作用:
i.index 获取当次循环的下标
i.count获取当次循环的次数
i.first判断是否是第一次循环
i.last判断是否是最后一次循环

循环标签遍历集合:
循环标签的item和var属性的作用:
items:声明要遍历的数据,可以是集合和数组等。
var:声明变量记录每次遍历的结果,是数据。可以在循环体中直接使用EL表达式获取遍历出来的数据。

总结

有多少种在JSP页面输出值的方式
7种

  1. 内置九大对象之out
  2. <%= %> JSP输出表达式 JSP中出现大量脚本
  3. response.getWriter() null 97
    4.response.getOutputStream() 没有任何的数据过滤
  4. <c:out> 默认使用HTMLFilter进行数据的过滤
  5. EL 主要是和核心标签库结合使用
  6. System.out

迭代方式适合输出什么样的数据:
字符串、集合、元
组、列表、字典都属于可迭代类型。当然对于较
高级的数据类型例如:队列、栈、顺序字典、名称
元组都是可迭代类型
foreach除了使用迭代接口实现输出之外,从JDK1.5开始加强型的for循环也可以实现集合输出了,这种形式与我们使用for循环输出数组类似。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值