EL表达式

首先看EL表达式的语法:${EL表达式}

要使用EL表达式还要确定EL表达式没有被禁用,JSP中提供了三种方式禁用EL表达式。

1、使用\符号

在EL表达式的起始标记前加上\符号

\${name}

2、使用page指令

语法格式如下:

<%@ page isELIgnored="true" %>

使用该语句整个页面中的EL表达式将被忽略。

3、在web.xml文件配置<el-ignored>元素

在web.xml文件中配置<el-ignored>元素可以实现禁用服务器中的EL表达式,具体配置如下:

<jsp-config>
	<jsp-property-group>
		<url-pattern>*.jsp</url-pattern>
		<el-ignored>true</el-ignored>
	</jsp-property-group>
</jsp-config>

EL表达是具体用法如下:

${username}这个表达式就是获得变量username的值。

.操作符用来访问对象的属性,例如:${student.name}这个表达式我们可以获得student对象的name属性。

[]操作符也可以用来访问对象的属性,例如:${student[“name”]},与上述表达式效果相同;同时还能用来访问数组或集合,例如:studentlist[0]

特例:对于变量中如果存在特殊字符(例如.)必须使用[]访问属性。

例如:request.setAttribute(“student.name”,”张三”);

这时使用${student.name}显示结果为空,但是使用${requestScope[student.name]},显示张三。

首先看读取对象属性的方法:

有Student类,该类有name和password两个属性。

package Temp;

public class Student {
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

然后看在请求对象中将一个Student对象封装,并转发给下一个界面

<%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="Temp.Student" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>   
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
  	<%
  		Student student = new Student();
  		student.setName("张三");
  		student.setPassword("张三密码");
  		request.setAttribute("mess", student);
  		request.getRequestDispatcher("MyJsp.jsp").forward(request, response);
  	 %>
  </body>
</html>

然后看下一个界面如何使用EL表达式处理

<%@page import="Temp.Student"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>   
    <title>My JSP 'MyJsp.jsp' starting page</title>
  </head>
  
  <body>
	${mess["name"] }
  	 <br>
  	 ${mess.name} 
  </body>
</html>

然后看下一个示例,如何读取数组中的元素

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>My JSP 'ReadArray.jsp' starting page</title>
  </head>
  
  <body>
    <%
    	String[] fruits = {"苹果","香蕉","橘子","西瓜"};
    	request.setAttribute("fruit", fruits);
     %>
     ${fruit[0] }
  </body>
</html>

这时将在页面中输出苹果。如果数组越界,将不显示任何数据,也不会报错。

注意:1EL表达式区分大小写。2、使用EL前,必须先将对象存入作用域中。将对象存入作用域不会复制对象,作用域只保存该对象的引用,所以对服务器几乎没有什么影响。

EL运算符

()

改变运算优先级,例如:$(3*(4+5))

+   -  *  /   % 

算术运算符,例如:$(a+b)

== != > >= < <=

关系运算符,例如:$(a==b)

&& || !

逻辑运算符,例如:$(true&&false)

? :

条件运算符,例如:$(a?b:c)

Empty

用于检测变量是否存在,是否等于null,例如:$(empty  name)

注意:EL表达式无法向像java一样将两个字符串用"+"运算符连接,所以${"小"+“明”}的写法是错误的,但是我们可以采用${"小"}${"明"}这样连接。

${username}他的意思是取出 某一个范围中名称为username的变量。因为我们并没有制定他是那个范围的username,所以他会依次从page、request、session、application范围查找,如果途中找到username,就直接返回,不继续查找,如果全部范围都没有找到就会返回null。

EL表达式的功能:

1、取得javaBean对象的属性,例如:${news.title}获取新闻对象的标题属性。

2、获得数组、集合元素,例如:${list[0]}获取list集合的第一个元素。

3、使用各类运算符对原始数据进行简单处理,例如:${a+b}计算a+b的值。

4、屏蔽掉一些常见的异常,例如:${username}当username为空时也不会报错。

5、能实现简单的自动类型转换,例如:${news}获取新闻对象,相当于(News)request.getAttribute("news");

如果指定EL取值作用域时,只需要在变量前面加上作用域即可,例如:requestScope、sessionScope……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值