el表达式 循环_EL表达式和JSTL标签库(百战程序员047天)
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天)相关推荐
- el表达式 循环_EL表达式+JSTL+Ajax 047
El表达式的语法: ${表达式} 注意: 自带响应功能 El表达式的使用: El表达式获取请求数据 获取用户请求数据(请求实体) ${param.键名} 获取请求实体中一个键一个值的数据 ${para ...
- javaweb(09) EL表达式JSTL标签库(jsp相关,了解)
javaweb(09) EL表达式&JSTL标签库(jsp相关,了解) EL表达式 简介和基本使用 EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的 ...
- EL 表达式 JSTL 标签库
EL 表达式 & JSTL 标签库 1.什么是EL表达式?EL表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的什么作用:EL 表达式 ...
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
来自:http://blog.csdn.net/love_you_99/article/details/8184797 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极 ...
- spring mvc学习(37):JavaEE-JSP基础-EL表达式和JSTL标签库(Taglibs)
EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写 一.EL表达式 作用: ${} 简化脚本表达式 <%= %> j2ee1.4以前版本需指定<%@ page is ...
- EL表达式和JSTL标签库使用
EL表达式 介绍: EL(Expression Language) 目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP ...
- EL表达式和JSTL标签库学习笔记
先说一些数据库的知识,在进行表的操作时,若有一对多的关系,则在建外键时应选择多的一方.如user和group的对应关系,应在一个user属于多少个group,而不是一个group有多少用户,虽然这样也 ...
- EL表达式与Jstl标签库学习
一.EL表达式 1)概念:Expression Language(EL表达式),jsp文件内置的一种能简化代码的表达式,可供jsp文件对流转数据的读取. 2)作用:让 jsp 书写起来更加的方便.简化 ...
- 28. EL 表达式 以及 JSTL 标签库
28. EL 表达式 以及 JSTL 标签库 1.EL 表达式 a)什么是 EL 表达式,EL 表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达 ...
最新文章
- jquery validate 详解一
- R语言基于MASS包中的shuttle数据集以及neuralnet包构建神经网络模型
- LeetCode-笔记-231-2的幂
- AutoCloseable的用法
- docker随着主机启动 自动启动设置
- c socket双向通信 qq linux,请问如何实现像QQ那样2个内网用户的点到点SOCKET通信?...
- 10 tf.data模块
- 五种主流的linux操作系统,五款常用的Linux操作系统
- 找准盈利模式,博客网站赚钱也轻松
- 微信小程序的自定义组件
- 网易的java微专业_网易微专业Java高级架构师
- “最忆是杭州”再次上演,与新华三“谈谈新”
- 不变初心数 (15 分)
- Lucene学习——IKAnalyzer中文分词(一)
- esp8266 SDK相关资料
- kuka机器人报电源管理报错_KUKA机器人故障信息与故障处理_中文版.pdf
- 「THUWC 2017」在美妙的数学王国中畅游
- wpf grid添加边框
- python获取数组长度_Python返回数组(List)长度的方法
- 黑马程序员 动态代理
热门文章
- 死锁产生的原因及条件、如何避免死锁
- 动易sitefactory 数据库 mysql msssql_动易SiteFactory配置文件(web.config)常用配置节解读...
- 宏定义与预处理、函数和函数库
- mongodb java报授权,mongoDB 3.0用户创建与授权
- [NOI2019]回家路线
- Find The Multiple POJ - 1426 (BFS)
- 使用数据库恢复专家,修复数据库
- 网络流sap需要注意的地方
- RDLC报表其余空白页问题
- Exchange2003启用web页面登陆(表单型身份验证)