EL表达式(⽬的简化代码)
EL表达式(⽬的简化代码)
EL(Expression Language) ⽬的:为了使JSP写起来更加简单。
基于可⽤的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到 Java 类中静态⽅法的可扩展函数以及⼀组隐式对象。
EL 提供了在 JSP 脚本编制元素范围外使⽤运⾏时表达式的功能。脚本编制元素是指页⾯中能够⽤于在 JSP ⽂件中嵌⼊ Java 代码的元素。它们通常⽤于对象操作以及执⾏那些影响所⽣成内容的计算。JSP 2.0 将 EL 表达式添加为⼀种脚本编制元素。
⼀、EL表达式的⽤途
获取数据:(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
执⾏运算:基本的关系运算、逻辑运算和算术运算
获取web开发的内置对象
调⽤Java⽅法:允许⽤户开发⾃定义EL函数,在JSP页⾯中通过EL表达式调⽤Java类的⽅法。
⼆、EL概述
1、EL的基本语法
EL表达式语法,以“${”开头以“}”结尾
形如:${ expression } 
例如:${“学习EL表达式”} ——>输出为“学习EL表达式”
2、EL的特点
EL可以和JSTL、JavaScript语句结合使⽤
在EL中可以访问JSP的作⽤域(request、session、application、page)
在EL中可以执⾏运算操作
EL可以访问JavaBean中的属性以及嵌套属性
三、禁⽤EL表达式(三种)
1、通过“\”符号
 例如:\${expression}
2、使⽤page指令
<%@page isELIgnored="布尔值"%>
isELIgnored=”true”:禁⽤EL表达式
isELIgnored=”flase”:解析EL表达式
3、在l中配置
<jsp-config>
<jsp-property>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
//值为true表⽰禁⽤EL,值为false使⽤EL
</jsp-property>
</jsp-config>
四、保留的关键字
 如果在EL中使⽤保留的关键字的时候会出错,所以为变量命名时不要使⽤保留关键字命名
五、EL的运算
1、使⽤EL访问数据
  通过“[ ]”,“.”两个运算符来访问数据
(1)访问JavaBean对象userInfo的id属性
${userInfo.id}
${userInfo[id]}
//两个⼀样
(2)数组元素的获取
  获取request范围中的数组book中第⼀个元素
${book[0]}
例⼦如下两个:
通过EL表达式输出数组的全部元素
List 集合元素的获取
2
、算术运算
3、逻辑关系运算
<%
/
/定义⼀维数组
String [] arr={"Java Web 开发典型模块⼤全","Java 范例完全⾃学⼿册","JSP 项⽬开发全程实录"};
//将数组保存到request 对象中
request .setAttribute("book",arr);
%>
<%
//获取保存到request 范围内的变量
String [] arr1=(String [])request .getAttribute("book");
//通过循环和EL 输出⼀维数组的内容el表达式获取值
for (int  i=0;i<arr1.length;i++){
request .setAttribute("requestI",i);
%>
${requestI}:${book[requestI]}<br >  <!-- 输出数组中第i 个元素 --><%} %>
<%
List<String > list = new  ArrayList<String >();                    //声明⼀个List 集合的对象
list.add("饼⼲");
//添加第1个元素
list.add("⽜奶");
//添加第2个元素
list.add("果冻");
//添加第3个元素
session.setAttribute("goodsList",list);                        //将List 集合保存到session 对象中
%>
<%
List<String > list1=(List<String >)Attribute("goodsList"); //获取保存到session 范围内的变量
//通过循环和EL 输出List 集合的内容
for (int  i=0;i<list1.size();i++){
request .setAttribute("requestI",i);                        //将循环增量保存到request 范围内
%>
${requestI}:${goodsList[requestI]}<br >                  <!-- 输出集合中的第i 个元素 -->
<%} %>
(1
)关系运算
(2
${条件表达式?表达式 1:表达式 2}
表达式1:当条件为真,将要返回的值
表达式2:当条件为假,将要返回的值
六、⽤EL语句判断是否为空
  在EL中判断对象是否为空,可以通过empty运算符实现,该运算符是⼀个前缀(prefix)运算符
  格式:${empty expression}
  <font color="red">可与条件运算符⼀起⽤</font>
七、EL的隐含对象
  EL提供11个隐含对象,来获取Web应⽤程序中的相关数据,类似于JSP内置对象。PageContext是JavaBean对象并且属于javax.servlet.jsp.PageContext类,其他隐含对象都属于java.util.Mao类型。
  隐含对象分为三种:
页⾯上下⽂对象
访问作⽤域范围的隐含对象
访问环境信息的隐含对象
1、页⾯上下⽂对象(pageContext)
(1)访问request对象
  通过pageContext获取JSP内置对象的request对象
例如:
获取端⼝号
${quest.serverPort}
(2)response对象
(3)out对象
(4)session对象
(5)exception对象
(6)page对象
(7)servletContext对象获取servlet上下⽂路径
${tPath}
对应的⽅法在JSP⾥⾯介绍
2、访问作⽤域范围的隐含对象
在EL中提供4个⽤于访问作⽤域范围的隐含对象,pageScope、requestScope、sessionScope、 applicationScope。4个隐含对象只能⽤来取得指定范围内的属性值。
(1)pageScope隐含对象
  pageScope隐含对象⽤于返回包含page范围内的属性值集合
例⼦:
在com包中创建类User类
public class User {
private String name = "";// ⽤户名
// name属性对应的set⽅法
public void setName(String name) {
this.name = name;
}
// name属性对应的get⽅法
public String getName() {
return name;
}
}
创建index.jsp
<body>
<jsp:useBean id="user"scope="page"class="com.User"type="com.User">
<jsp:setProperty name="user"property="name"value="我是你获取的值"/>
</jsp:useBean>
${pageScope.user.name}
</body>
(2)requestScope隐含对象

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。