1.EL表达式

介绍:是一种非常简洁的表达式,语法简单,便于使用,灵感来源于ECMAScript和Xpath的表达式语言

样式:

${表达式}

作用:简化jsp中获取作用域或者请求数据的写法。

获取请求数据

EL表达式

1)获取请求数据

(1)请求实体数据

${param.键名}

请求实体中同键不同名的数据

${paramValues.键名}//返回的数组,比如复选框。具体获得某个值,数组名[];

(2)获取请求头的数据

${header} //返回的是所有的请求头中的键值对

${header["键名"]}//返回键对应的值

如果一个键对应多个值 ${headerValues["accept-language"]}//返回的是数组

(3)获取cookie数据

${cookie}获取所有的Cookie对象 键值对

${cookie.cookie对象的键名}获取存储了指定Cookie数据的Cookie对象

${cookie.Jcookie对象的键名.name}<br>获取存储了指定Cookie数据的Cookie对象的存储的键

${cookie.Jcookie对象的键名.value}获取存储了指定Cookie数据的Cookie对象的存储的值

获取作用域数据

1)作用域对象:pageContext request session application

2)作用域数据:我们使用setAttribute方法存储的数据

获取:

普通字符串数据 ${键名}

对象数据 ${键名.属性名}

集合数据

list集合 ${键名[角标]}

Map集合 ${map集合作用域存储的键名.map集合存储的数据的键名}

3)作用域数据查找顺序:如果找到了则不再查找,如果找不到,则继续查找下一个作用域,如果四个作用域中都没有则什么都不显示

pageContext-->request-->session-->application

4)指定作用域获取数据:

${pageScope.键名} 指明获取pageContext作用域中的数据

${requestScope.键名} 指明获取request作用域中的数据

${sessionScope.键名} 指明获取session作用域中的数据

${applicationScope.键名} 指明获取application作用域中的数据

EL逻辑表达式运算

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

${算术表达式} 例如 :${1+2}

注意:+表示算术运算,不能进行字符串连接

逻辑运算:&& || !

${逻辑表达式}

注意:没有单& 和单|

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

${比较表达式}

三目运算:

${条件?值:值}

EL表达式的empty判断

${empty 键名}

作用:

判断该键是否有存储有效数据

注意:如果普通的数据是空,用empty返回true

如果是对象数据,调用无参构造方法创建实例,用empty返回的是false,因为对象中属性会默认赋值给null.

JSTL标签库:

1.是EL表达式的扩展,它是一个标签语言

1) 作用:提升jsp页面的逻辑代码的编码效率

2)在jsp中引入

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

prefix:前缀

2.核心标签库:

基本标签:

1)out标签:

样式: <prefix:out value="${表达式}" default="默认值"></prefix:out>

作用:结合EL表达式,将数据响应到浏览器,如果EL表达式没有取到数据,会 采用默认的属性的值

2)set标签

样式:

<prefix:set var="键名" value="数据" scope="作用域"></prefix:set>

作用:将数据存储到指定的作用域中

scope:的值 page request session application

没有scope默认往pagecontext中放

3)remove 标签

<prefix:remove var="键名“ scope="作用域名"></prefix:remove>

作用:将作用域的数据数据。如果没有scope的属性,默认是删除4个作用域的含有相同的键名的数据,scope可以指定作用域

使用pageContext.removeAttriute(String name,int scope)删除指定的作用域

scope: 1 pagecontext 2request 3 session 4application

注意:pageContext.removeAttribute("键名")会删掉所有作用域含有的相同键名的数据

逻辑标签:

单分支标签:

1)if 标签:

样式:

<prefix:if text="EL表达式">

输出的标签

</prefix:if >

作用:可以根据el表达式进行一定程度的单分支逻辑判断。

注意:

test属性中书写的是EL表达式,或者说是EL表达式的逻辑表达式。

该标签只能进行EL表达式相关的逻辑判断。不能进行EL表达式不能获取的数据的逻辑处理

多分支标签:

样式:

<prefix:choose>

<prefix:when text="EL表达式"></prefix:when >

<prefix:when text="EL表达式"></prefix:when >

……

<prefix:otherwise ></prefix:otherwise >

</prefix:choose>

注意:多分支标签只能执行一个,类似于if(){} else if(){} else {}

例子:

<c:choose> <c:when test="${score>=90}">  <b>赏美女</b>   </c:when>
<c:when test="${score>=80 &&score<90 }">    <b>赏萝莉</b>   </c:when>   <c:otherwise>  <b>赏丑八怪加大胖子一个</b>   </c:otherwise></c:choose> 

注意:EL表达式的数据,只能是EL能获取的数据。

循环标签:

样式:

<prefix:forEach begin="" end="" step="" varstatus="">

循环体

<prefix:forEach>

标签中的属性:begin:从声明循环开始的位置

end:循环结束的位置

step:循环跨越的步数

varstatus:声明变量记录循环的状态,例如:变量名=i;

注意:记录的数据,存储到了作用域,可以直接用EL表达式获取

实例:

${ i.index} :获取循环的下标

${i.count} :获取当前的循环的次数

${i.first}:判断是否是第一次循环

${i.last}:判断是否是最后一次循环

例子:

<c:forEach begin="1"  end="5"  step="2"  varStatus="i">   <c:if test="${i.count==3}">   <b>哇偶你是大帅锅</b>
</c:if>
</c:forEach> 

当遍历数组的长度不知道的时候比如集合,map:

<prefix:foreach items="" var="" varstatus="" >

</prefix:foreach>

items:要遍历的集合或者数组或者map,在作用域中的键名,用EL表达式获取。

从索引为0的位置开始遍历

var:指向集合或者数组的元素。在循环体中,用EL表达式获取,

注意如果是map的话,在循环体中用EL表达式获取的是键值对关系,获得具体的key

用${var中的变量名.key}

获取值得话${var中的变量名.value}

注意:var声明的变量存储到了作用域,得用EL表达式获取

实例:

<!-- 遍历List集合 -->

 <%
//创建测试数据list
ArrayList<String> list=new ArrayList<String>();
list.add("苹果"); list.add("榴莲");
list.add("荔枝");
//将list存储到作用域中
request.setAttribute("list",list);    %>
<c:forEach items="${list}" var="s" varStatus="i"> ${s}--${i.index}--${i.count}<br />
</c:forEach>
<!--遍历map集合  -->
<% //声明Map集合测试数据
HashMap<String,String> hs=new HashMap<String ,String>();
hs.put("s1","唱歌");
hs.put("s2", "跳舞");
hs.put("s3", "敲代码");
//将数据存储到作用域中
request.setAttribute("hs", hs);
%>
<c:forEach items="${hs}" var="s">
${s.key}--${s.value}<br />
</c:forEach> 

el表达式 循环_EL表达式和JSTL标签库(百战程序员047天)相关推荐

  1. el表达式 循环_EL表达式+JSTL+Ajax 047

    El表达式的语法: ${表达式} 注意: 自带响应功能 El表达式的使用: El表达式获取请求数据 获取用户请求数据(请求实体) ${param.键名} 获取请求实体中一个键一个值的数据 ${para ...

  2. javaweb(09) EL表达式JSTL标签库(jsp相关,了解)

    javaweb(09) EL表达式&JSTL标签库(jsp相关,了解) EL表达式 简介和基本使用 EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的 ...

  3. EL 表达式 JSTL 标签库

    EL 表达式 & JSTL 标签库 1.什么是EL表达式?EL表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的什么作用:EL 表达式 ...

  4. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    来自:http://blog.csdn.net/love_you_99/article/details/8184797 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极 ...

  5. spring mvc学习(37):JavaEE-JSP基础-EL表达式和JSTL标签库(Taglibs)

    EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写 一.EL表达式 作用: ${} 简化脚本表达式 <%= %> j2ee1.4以前版本需指定<%@ page is ...

  6. EL表达式和JSTL标签库使用

    EL表达式 介绍: EL(Expression Language)  目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP ...

  7. EL表达式和JSTL标签库学习笔记

    先说一些数据库的知识,在进行表的操作时,若有一对多的关系,则在建外键时应选择多的一方.如user和group的对应关系,应在一个user属于多少个group,而不是一个group有多少用户,虽然这样也 ...

  8. EL表达式与Jstl标签库学习

    一.EL表达式 1)概念:Expression Language(EL表达式),jsp文件内置的一种能简化代码的表达式,可供jsp文件对流转数据的读取. 2)作用:让 jsp 书写起来更加的方便.简化 ...

  9. 28. EL 表达式 以及 JSTL 标签库

    28. EL 表达式 以及 JSTL 标签库 1.EL 表达式 a)什么是 EL 表达式,EL 表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达 ...

最新文章

  1. jquery validate 详解一
  2. R语言基于MASS包中的shuttle数据集以及neuralnet包构建神经网络模型
  3. LeetCode-笔记-231-2的幂
  4. AutoCloseable的用法
  5. docker随着主机启动 自动启动设置
  6. c socket双向通信 qq linux,请问如何实现像QQ那样2个内网用户的点到点SOCKET通信?...
  7. 10 tf.data模块
  8. 五种主流的linux操作系统,五款常用的Linux操作系统
  9. 找准盈利模式,博客网站赚钱也轻松
  10. 微信小程序的自定义组件
  11. 网易的java微专业_网易微专业Java高级架构师
  12. “最忆是杭州”再次上演,与新华三“谈谈新”
  13. 不变初心数 (15 分)
  14. Lucene学习——IKAnalyzer中文分词(一)
  15. esp8266 SDK相关资料
  16. kuka机器人报电源管理报错_KUKA机器人故障信息与故障处理_中文版.pdf
  17. 「THUWC 2017」在美妙的数学王国中畅游
  18. wpf grid添加边框
  19. python获取数组长度_Python返回数组(List)长度的方法
  20. 黑马程序员 动态代理

热门文章

  1. 死锁产生的原因及条件、如何避免死锁
  2. 动易sitefactory 数据库 mysql msssql_动易SiteFactory配置文件(web.config)常用配置节解读...
  3. 宏定义与预处理、函数和函数库
  4. mongodb java报授权,mongoDB 3.0用户创建与授权
  5. [NOI2019]回家路线
  6. Find The Multiple POJ - 1426 (BFS)
  7. 使用数据库恢复专家,修复数据库
  8. 网络流sap需要注意的地方
  9. RDLC报表其余空白页问题
  10. Exchange2003启用web页面登陆(表单型身份验证)