EL表达式简介
最近Web课好像要讲这个东西。。。其实我用这个并不多,就当初学Strut2 时介绍OGNL表达式时顺带学了一点。
简介
主要作用是在Java Web应用程序嵌入到网页(如JSP)中,用以访问页面的上下文以及不同作用域中的对象,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。
EL全名Expression Language,使得JSP页面在访问存储在JavaBean中的数据变得非常简单。使用EL表达式可以替换JSP页面中的脚本表达式。
EL作用
- 获取数据
- 执行基本的关系与逻辑运算
- 获取web应用中的常用对象
- 调用Java方法
简单示例
示例1:获取JavaBean对象
可以提供${EL表达式}
直接访问对象或者对象中的成员变量。
首先使用MyEclipse创建一个简单的web应用
在Src目录下创建包:com.example.zx.domain
在包下创建User.java
文件,并设置两个成员变量,并指定getter和setter:
package com.example.zx.domain;
public class User {
String userName;
String passWd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWd() {
return passWd;
}
public void setPassWd(String passWd) {
this.passWd = passWd;
}
}
在Web应用的WebRoot目录下创建testEL.jsp
文件,下面通过代码对EL表达式进行测试:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@page import="com.example.zx.domain.User"%>
<html>
<head></head>
<body>
<hr>
获取javaBean中的属性<br>
<%
User u = new User();
u.setUserName("Near_ZhXiaO");
pageContext.setAttribute("user",u);
%>
Servlet: <br>
<%=((User)pageContext.getAttribute("user")).getUserName() %>
<br>
EL表达式:
${user.userName}
</body>
</html>
将web应用部署到Tomcat并访问:
http://localhost:8080/testtest/testEL.jsp
将看到两种不同方式访问属性获得相同的值。
示例2:获取请求的参数
http://localhost:8080/testtest/testEL.jsp?uesrname=Near
同时我们修改jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@page import="com.example.zx.domain.User"%>
<html>
<head></head>
<body>
<%
request.setAttribute("passwd", "1503121703");
%>
<hr>
EL表达式:<br>
${param.username}
${passwd}
<br>
${param["username"] }
<br>
Servlet:
<br>
<%=request.getParameter("username") %>
<%=request.getAttribute("passwd") %>
</body>
</html>