-
2018-11-25 19:55:41
EL 表达式概述:
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。
在page中必须声明 isELIgnored="false"
用于显示东西;不显示null
它显示容器中的值时,从4~1查找,查到哪个显示那个。
EL从域中取出数据(EL最重要的作用)
jsp脚本:<%=request.getAttribute(name)%>
EL表达式替代上面的脚本:${requestScope.name}
EL最主要的作用是获得四大域中的数据,格式${EL表达式}
EL获得pageContext域中的值:${pageScope.key};
EL获得request域中的值:${requestScope.key};
EL获得session域中的值:${sessionScope.key};
EL获得application域中的值:${applicationScope.key};
EL从四个域中获得某个值${key};
---同样是依次从pageContext域,request域,session域,application域中 获取属性,在某个域中获取后将不在向后寻找
- 获得普通字符串
- 获得User对象的值
3)获得List<User>的值
EL的内置对象11个
pageScope,requestScope,sessionScope,applicationScope ---- 获取JSP中域中的数据
param,paramValues - 接收参数. 相当于request.getParameter() rrquest.getParameterValues()
header,headerValues - 获取请求头信息 相当于request.getHeader(name)
initParam - 获取全局初始化参数 相当于this.getServletContext().getInitParameter(name)
cookie - WEB开发中cookie 相当于request.getCookies()---cookie.getName()---cookie.getValue()
pageContext - WEB开发中的pageContext.
pageContext获得其他八大对象 ${pageContext.request.contextPath}
相当于<%=pageContext.getRequest().getContextPath%> (这句代码不能实现)获得WEB应用的名称
EL执行表达式
例如:
${1+1} ${empty user} ${user==null?true:false}
更多相关内容 -
jsp 开发 ER 表达式
2011-12-13 21:56:31jsp开发过程中不可少的东东,适合查询,入门学习,简单方便理解 -
jsp页面中的er表达式 ${cartItem.book.bname }报错
2017-09-10 13:55:36jsp页面代码 ${cartItem.book.bname } 备注:我有个类CartItem 里面有属性 为Book类型的book (Book也是一个类),bname是Book的属性 控制台报错内容 Property 'book' not found on type java.lang.String -
jq中使用er表达式报错
2016-08-01 14:45:59[img=https://img-bbs.csdn.net/upload/201608/01/1470033891_931863.png][/img][img=https://img-bbs.csdn.net/upload/201608/01/1470033908_766643.png][/img] -
EL表达式
2021-07-30 19:43:47EL表达式是Expression Language的简称,意思是表达式语言,它是Jsp2.0中引入的一种计算机和输出Java对象的简单语言,便利于Java的开发。1 使用EL表达式的前提条件:
只要安装的web服务器能支持jsp2.0/servlet 2.4就可以使用EL表达式,由于jsp2.0之前不存在EL表达式,所以我们有以下三种禁用EL表达式的方法。
1 使用斜杠“\”符号:
/${expression}
2 使用page命令:
<%@page isELIgnored="true|false" %>
3 配置web.xml文件:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <!-- 如果是false则表明使用EL表达式 --> <el-ignored>true</el-ignored> </jsp-property-group> </jsp-config>
2 EL表达式的基本用法:
一般以 ${ 开头 以 } 结尾
例如输出字符串:${"ok"}
3 EL表达式的特点:
- EL表达式可以获得命名空间对象
- EL表达式不仅可以访问一般变量,还可以访问JavaBean中的属性以及嵌套属性和集合对象
- 可以执行关系运算 逻辑运算 算术运算
- 扩展函数可以和Java类的静态函数进行映射
- 在EL表达式中可以访问jsp的作用域
- EL可以与JSTL或者JS结合使用
4 EL表达式的运算符:
1 数组元素的存取:
<% String []arr={"苹果","香蕉","西红柿","芒果"}; request.setAttribute("fruit", arr); %> ${requestScope.fruit[1]}
2 List集合元素的存取:<% List list=new ArrayList(); list.add("1"); list.add("2"); list.add("3"); session.setAttribute("listtest", list); %>
-
JavaWeb学习——EL表达式
2022-02-23 19:01:13一、EL表达式 二、EL表达式搜索域数据的顺序 三、EL 表达式输出 Bean 的普通属性,数组属性,List 集 合属性,map 集合属性 四、EL 表达式——运算 五、EL表达式的11个隐含对象 一、EL表达式 (1)EL表达式...目录
三、EL 表达式输出 Bean 的普通属性,数组属性,List 集 合属性,map 集合属性
一、EL表达式
(1)EL表达式全称:Expression Language,时表达式语言
(2)EL表达式作用:主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出
因为EL表达式在输出数据时,要比jsp的表达式脚本要简洁很多。
<% request.setAttribute("key","request"); %> 表达式脚本输出key的值是:<%=request.getAttribute("key1")== null?"":request.getAttribute("key1")%><br/> EL表达式输出key的值是:${key1}
EL表达式的格式: ${表达式}
EL表达式在输出null值时,输出的是空串,jsp表达式脚本在输出null值时,输出的是null字符串
二、EL表达式搜索域数据的顺序
EL表达式主要在jsp页面中输出数据。且主要是输出域对象中的数据
当四个域中都有相同的 key 的数据时,EL 表达式会按照四个域从小到大的顺序进行搜索,找到就输出。
<% // 往四个域中都保存了相同的key的数据 pageContext.setAttribute("key1","pageContext"); request.setAttribute("key1","request"); session.setAttribute("key1","session"); application.setAttribute("key1","application"); %> ${key1}
三、EL 表达式输出 Bean 的普通属性,数组属性,List 集 合属性,map 集合属性
四、EL 表达式——运算
语法:${ 运算表达式 }
EL 表达式支持如下运算符:
4)empty 运算
empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。
以下几种情况为空: ① 值为 null 值的时候,为空
② 值为空串的时候,为空
③ 值是Object 类型数组,长度为零的时候
④ list 集合,元素个数为零
⑤ map 集合,元素个数为零
5)三元运算
三元运算格式:表达式1?表达式2:表达式3
实例:${ 123 == 123 ?"小镭在敲代码":"小镭没有在敲代码"}
如果表达式1的值为真,返回表达式2的值,如果表达式1的值为假,返回表达式3的值。
6)“ ·”运算和 [ ] 中括号运算符
· 运算,可以输出Bean对象中某个属性的值
[ ] 运算,可以输出有序集合中某个元素的值
且 [ ] 运算,还可以输出map集合中key里含有特殊字符的key值。
<% Map<String,Object> map1 = new HashMap<String,Object>(); map1.put("a.a.a","valuea"); map1.put("b+b+b","valueb"); request.setAttribute("map1",map1); %> ${ map1['a.a.a'] } <br/> ${ map1["b+b+b"] }<br/>
五、EL表达式的11个隐含对象
EL 个达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使用。
EL表达式的11个隐含对象 变量 类型 作用 pageContext pageContextImpl 获取jsp中的九大内置对象 pageScope Map<String,Object> 获取pageContext域中的数据 requestScope Map<String,Object> 获取Request域中的数据 sessionScope Map<String,Object> 获取Session域中的数据 application Map<String,Object> 获取ServletContext域中的数据 param Map<String,String> 获取请求参数的值 paramValue Map<String,String[]> 获取请求参数的值,可获取多个值 header Map<String,String> 获取请求头的信息 headerValue Map<String,String[]> 获取请求头的信息,可获取多个值 cookie Map<String,Cookie> 获取当前请求的Cookie信息 initParam Map<String,String> 获取在web.xml中配置的<context-param>上下文参数 1)EL获取四个特定域中的属性
pageScope pageContext域 requestScope Request域 sessionScope Session域 applicationScope ServletContext域 <% pageContext.setAttribute("key1","pageContext1"); pageContext.setAttribute("key2","pageContext2"); request.setAttribute("key1","request"); session.setAttribute("key1","session"); application.setAttribute("key1","application"); %> <%--可以选择性的输出(而不是按从小到大顺序)--%> ${ requestScope.key1 }<br/> ${ applicationScope.key1 }<br/> ${ pageScope.key2 }<br/>
2)pageContext对象的使用
①协议 ②服务器ip ③服务器端口 ④获取工程路径 ⑤获取请求方法 ⑥获取客户端ip地址
⑦获取会话的id编号
简单写法:
3)EL表达式其他隐含对象的示例
Ⅰ、
变量 类型 作用 pageContext pageContextImpl 获取jsp中的九大内置对象 pageScope Map<String,Object> 获取pageContext域中的数据 输出请求参数username的值: ${ param.username }<br/> 输出请求参数password的值: ${ param.password }<br/> 输出请求参数username的值: ${ paramValues.username[0] }<br/> 输出请求参数hobby的值: ${ paramValues.hobby[0] }<br/> 输出请求参数hobby的值: ${ paramValues.hobby[1] }<br/>
Ⅱ、
变量 类型 作用 header Map<String,String> 获取请求头的信息 headerValue Map<String,String[]> 获取请求头的信息,可获取多个值 输出请求头【User-Agent】的值:${ header["User-Agent"] }<br/> 输出多个请求头【User-Agent】的值:${ headerValues["User-Agent"][0] }<br/> 输出请求头【Connection】的值:${ header.Connection }<br/>
Ⅲ、
变量 类型 作用 cookie Map<String,Cookie> 获取当前请求的Cookie信息 获取cookie的名称:${cookie.JSESSIONID.name}<br/> 获取cookie的值:${cookie.JSESSIONID.value}<br/>
Ⅳ、
变量 类型 作用 initParam Map<String,String> 获取在web.xml中配置的<context-param>上下文参数 获取在web.xml中配置的<context-param>中的username: ${ initParam.username }
-
IDEA学习记录10--EL表达式
2022-01-11 17:05:291、EL表达式可以让JSP访问JavaBean中的数据更简单,简化JSP JavaBean就是一个java对象。 2、 1、 把数据传到request作用域中去: 2、 若实现从数据库读取数据,则会成为动态网站。 3、用与不用EL... -
SSM框架下 jsp页面引用EL表达式失效
2022-04-30 22:52:55El表达式在idea的jsp页面失效 -
jsp EL表达式与JSTL的使用
2022-04-18 20:25:57文章目录四大域对象EL表达式JSTL库 四大域对象 page域(pageContext):只能作用于当前页面,既不能用来做做转发的数据分享,也不能做重定向的数据分享。 request域:只能作用于同一个请求的数据共享,所以只能在... -
ER表达式可以嵌套吗我想做一个c:if request里的值和session里的一个值比较应该怎么写啊
2017-03-05 20:52:17<c:if test="${list.userRealName neq "${user. userRealName}"}"> 我这个是错的 应该怎么写啊 求教了!!! -
在Jsp使用EL表达式后没有数据输出
2021-04-09 14:22:02如图所示使用这种表达式进行输出时,我们可能会出现无法获取的数据输出; 这个时候你就可以去确认下开头是否添加了这样一行代码如果没有添加,添加上就可以正常显示了 -
EL表达式详解
2018-04-08 12:27:28该篇博客主要关于EL表达式,废话不多说=-=进入正题 博客目录 1、EL表达式介绍 2、EL获取数据 3、EL中的内置对象 4、EL访问Bean的属性 5、EL访问数组中的数据 6、EL获取list中数据 7、EL访问... -
JSP中的EL表达式
2021-01-03 21:00:32一、EL表达式简介 二、EL表达式获取数据 1.EL 表达式搜索域数据的顺序 2.EL表达式获取JavaBean的数据 2.1 JavaBean规范 2.2 获取JavaBean中不同类型的数据 三、EL的11个隐含对象 1.pageContext的使用 2.获取... -
EL表达式概述
2016-08-26 15:35:28• EL表达式是为了便于获取数据而定义的一种语言,JSP 2.0之后才成为一种标准。下面的示例是一个简单的EL表达式: ${stuno+ 1} EL表达式的基本语法 • EL表达式的出现让Web的... -
EL表达式 ${ } 的说明
2020-10-13 07:22:10EL表达式 ${ } 的说明 EL表达式的具体例子: 例一: <%=request.getAttribute(“userlist”) %> 等价于$ { requestScope.userlist } 例二: ${requestScope.userlist} 1 ${sessionScope.userlist} 2 ${... -
el表达式不生效问题解决方法
2021-01-20 12:19:36el表达式不生效问题解决方法 一、在jsp加上 <%@ page isELIgnored="false" %> 二、修改web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" ... -
el表达式string强制转换成long报错
2021-02-27 22:26:41今天在项目中遇到一个奇怪的bug,在jsp页面使用el表达式遍历后台传过来的集合,页面显示是一片空白!查看错误日志才发现报了个错:javax.servlet.jsp.el.ELException: An exception occured trying to convert String... -
spring el表达式---基础接口及基础语法
2018-12-19 17:11:26el表达式的解析接口,ExpressionParser. 有其实现类,可注册配置选项(config),重点在于操作表达式. el表达式的配置类,SpelParserConfiguration. 可配置el表达式的编译模式,指定类加载器,设置是否自动增长空元素... -
EL表达式:主要是用于简化JSP的输出
2021-01-06 22:24:30一:什么是EL表达式:EL表达式初体验 二:而EL作用域对象(本篇博客的核心) 三:EL表达式输出:EL表达式输出对象的本质是调用toString()方法 四:EL输出参数( ) EL表达式可以极大简化JSP的书写难度,提高... -
jsp中EL表达式不起作用的问题
2018-03-14 17:58:15解决方法: 在使用el表达式的jsp中配置:<%@page isELIgnored="false" %>1该设置代表在本jsp中使用el表达式,可以解析其中的值。若isELIgnored设置为true,代表在本页不使用el表达式,... -
SpringBoot 值的注入以及 EL 表达式
2018-10-24 16:35:09使用spring 表达式语言实现资源的注入 ,能够以一种强大和简单的方式将值装配到bean 属性和构造器中, spring EL 的特性 使用bean 的id 来引用bean 调用方法和访问对象的属性 对值进行算术,关系 和逻辑... -
jsp中EL表达式的日期转换
2019-05-30 14:05:20<fmt:formatDate value="${product.validDate}" var="validDate" pattern="yyyy-MM-dd"/> <input type="text" name="validDate...使用el表达式接收放到value里面,然后把处理结果放到var的变量中,然后在in... -
maven中使用el表达式
2019-09-01 18:24:311.添加maven依赖。 <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> &... -
62-EL表达式取整或者取固定位小数
2019-07-21 14:52:00转载自:EL表达式取整或者取固定位小数 目前最好的方法 在网上查了许多资料都说EL表达式无法取整,的确EL表达式除法结果为浮点型。 例如${8/7} ,${6/7} ,${12/7 } 在页面的显示结果分别为: 1.1428571428571428... -
JSP中的EL表达式${}未解析的解决方法
2021-04-29 11:49:18上面代码显示结果为${param.username},也就是EL表达式未解析,那是因为没有加<%@ page isELIgnored=“false”%> 总结:如果要使用EL表达式,记得加上<%@ page isELIgnored=“false”%> 上述代码是在... -
EL表达式,#{}和${}区别(是否防止sql注入)
2021-08-12 20:01:55#相当于对数据 加上 双引号,$相当于直接显示数据 #可以有效的防止SQL注入 会加上“” 之后写进sql中 $不能防止SQL注入 因为会直接写进sql语句中 使用#时: 1、用#来传递参数时,sql在解析的时候会加上“”,当成... -
jsp中用el表达式赋值给变量存储到域对象里
2020-10-16 17:28:57最近做项目,遇到了在el表达式里判断两个el表达式的值是否相等,以及采用el表达式赋值给变量并存储到域对象里: <c:forEach var="kqzkMap" items="${kqzkMaps}" varStatus="status"> <tr id=... -
js中el表达式判断是否为空
2019-08-19 10:21:46在js中使用el表达式,一定要使用引号括起来。否则对象为空的时候,页面会报错。 使用eval函数将json串转为转为对象:eval(’(’ + ‘${customMap}’ + ‘)’); 如果返回的json中包括双引号,那么就使用单引号包围... -
EL表达式 取值、判断
2018-12-18 15:55:43EL表达式 是为了简化咱们的jsp代码,具体一点就是为了简化在jsp里面写的那些java代码。 对域中对象做判定 写法格式 ${表达式 } 如果从作用域中取值,会先从小的作用域开始取,如果没有,就往下一个...