Spring 梳理-el表达式和jstl
- JSP中有这么几种元素
1: Scriptlet
<% ... %>
2: 声明元素 <%! ... %>
3: Java表达式 <%= ... %>
4: 指令元素 <%@ ... %>
5: EL表达式 ${ ... }
6: 标准动作元素 <jsp:*** ... />
7: 非标准动作 <***:*** ... />
- EL表达式
- 用来代替
<%= %>表达式脚本的 - 主要用于四个域中取出数据(application,request,session,page),即简化getAttribute…等操作的。
- 如果这样写
${name},不指定域,则会从小域到大域依次查找。 - 示例
<%
request.setAttribute("name", "Feathers");
%> name为:${requestScope.name} <!-- 即可取出request域中key为name的值 -->${student.name}表示输出student对象的name属性值,等效于<%=student.getName()%>EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的:
${sessionScope.user.sex}等于${sessionScope.user["sex"]}
. 和 [ ] 也可以同时混合使用,如下:
${sessionScope.shoppingCart[0].price}
回传结果为shoppingCart中第一项物品的价格。
不过,以下两种情况,两者会有差异:
(1) 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ],
例如:${user.My-Name }
上述是不正确的方式,应当改为:${user["My-Name"] }
属性范围(jstl名称)
EL中的名称
Page
PageScope
Request
RequestScope
Session
SessionScope
Application
ApplicationScope
我们也可以指定要取出哪一个范围的变量:
范例
说明
${pageScope.username}
取出Page范围的username变量
${requestScope.username}
取出Request范围的username变量
${sessionScope.username}
取出Session范围的username变量
${applicationScope.username}
取出Application范围的username变量
JSP有9个隐含对象,而EL也有自己的隐含对象。EL隐含对象总共有11 个
隐含对象
类型
说明
PageContext
javax.servlet.ServletContext
表示此JSP的PageContext
PageScope
java.util.Map
取得Page范围的属性名称所对应的值
RequestScope
java.util.Map
取得Request范围的属性名称所对应的值
sessionScope
java.util.Map
取得Session范围的属性名称所对应的值
applicationScope
java.util.Map
取得Application范围的属性名称所对应的值
param
java.util.Map
如同ServletRequest.getParameter(String name)。回传String类型的值
paramValues
java.util.Map
如同ServletRequest.getParameterValues(String name)。回传String[]类型的值
header
java.util.Map
如同ServletRequest.getHeader(String name)。回传String类型的值
headerValues
java.util.Map
如同ServletRequest.getHeaders(String name)。回传String[]类型的值
cookie
java.util.Map
如同HttpServletRequest.getCookies()
initParam
java.util.Map
如同ServletContext.getInitParameter(String name)。回传String类型的值
- pageContext
我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息。下表列出了几个比较常用的部分
Expression
说明
${pageContext.request.queryString}
取得请求的参数字符串
${pageContext.request.requestURL}
取得请求的URL,但不包括请求之参数字符串,即servlet的HTTP地址。
${pageContext.request.contextPath}
服务的webapplication的名称
${pageContext.request.method}
取得HTTP的方法(GET、POST)
${pageContext.request.protocol}
取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser}
取得用户名称
${pageContext.request.remoteAddr}
取得用户的IP地址
${pageContext.session.new}
判断session是否为新的,所谓新的session,表示刚由server产生而client尚未使用
${pageContext.session.id}
取得session的ID
${pageContext.servletContext.serverInfo}
取得主机端的服务信息
EL关系运算符
关系运算符
说明
范例
结果
== 或 eq
等于
${5==5}或${5eq5}
true
!= 或 ne
不等于
${5!=5}或${5ne5}
false
< 或 lt
小于
${3<5}或${3lt5}
true
> 或 gt
大于
${3>5}或{3gt5}
false
<= 或 le
小于等于
${3<=5}或${3le5}
true
>= 或 ge
大于等于
5}或${3ge5}
false
- 用来代替
jsp指令有三种:
- page指令
- include指令
- taglib指令
- JSTL:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Spring 梳理-el表达式和jstl的更多相关文章
- [转]EL表达式和JSTL表达式实例
/* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...
- 简述jsp之EL表达式和jstl及其使用
Jsp的指令之include指令include指令:代表的是页面的包含. 作用:可以把一些jsp的页面包含在一起,对外展示. 页面的布局,现在已经不用了,现在都用css+div进行布局.include ...
- jsp EL表达式和JSTL标签if-else if-else用法
java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...
- Javaweb学习笔记6—EL表达式与JSTL及自定义标签
今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...
- EL表达式、JSTL
EL表达式 一.简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. ...
- (十)EL表达式和JSTL标签快速入门
目录 什么是 el 表达式 示例:使用EL表达式获取pageContext .request.session.application域中的数据: 示例:使用EL表达式获取Bean属性 获取当前WEB应 ...
- EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统
EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...
- EL表达式与JSTL
内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...
随机推荐
- jvm系列(四):jvm调优-命令篇
运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...
- Leetcode之二分法专题-852. 山脉数组的峰顶索引(Peak Index in a Mountain Array)
Leetcode之二分法专题-852. 山脉数组的峰顶索引(Peak Index in a Mountain Array) 我们把符合下列属性的数组 A 称作山脉: A.length >= 3 ...
- 基于Taro与Typescript开发的网易云音乐小程序
基于Taro与网易云音乐api开发,技术栈主要是:typescript+taro+taro-ui+redux,目前主要是着重小程序端的展示,主要也是借此项目强化下上述几个技术栈的使用,通过这个项目也可 ...
- office web apps server安装
1.准备服务器 准备一台windows server 2012 R2服务器,修改计算机名称加入域,如果是通过虚拟机复制导致sid冲突,可以先运行 c:\windows\system32\sysprep ...
- JMeter使用代理进行录制
参考: http://www.cnblogs.com/zhuque/archive/2012/11/13/2767747.html JMeter支持第三方(Badboy)录制和代理录制,Badboy录 ...
- ZOJ4027 Sequence Swapping DP
link:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4027 题意: 有一个括号序列,每个括号对应一个值,现在可以使得相 ...
- ZKW线段树 非递归版本的线段树
学习和参考 下面是支持区间修改和区间查询的zkw线段树模板,先记下来. #include <algorithm> #include <iterator> #include &l ...
- hdu2586 How far away ?(lca模版题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:给出一棵树还有两个点然后求这两个点的最短距离. 题解:val[a]+val[b]-2*va ...
- 多级树的深度遍历与广度遍历(Java实现)
目录 多级树的深度遍历与广度遍历 节点模型 深度优先遍历 广度优先遍历 多级树的深度遍历与广度遍历 深度优先遍历与广度优先遍历其实是属于图算法的一种,多级树可以看做是一种特殊的图,所以多级数的深/广遍 ...
- Windows下升级Zabbix Agent
这段时间因工作上不太忙,就着手升级下zabbix,从3升级到最新版4.2,服务器端升级还挺快,就是客户端比较耗时了,往往就是看的越简单的东西越耗时间啊. Windows版本的zabbix agent下 ...