el是一种简单的表达式语言,能够访问变量、javabean的属性,集合和数组,能够进行关系,逻辑和算数运算,能够访问内建对象
应用场合:1、标签的属性值中,2、作为判断条件,3、jsp页面直接使用
基本语法:
访问变量:${变量名}
访问maps、lists、arrays使用“[]”,例:list[0]
访问javabean属性使用“.”,可以嵌套:per.name.firstName
java类
package com.el;
public class Person {
/* Name引用的是Name的name*/
private Name name;
private int age;
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.el;
public class Name {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
jsp页面
<%@page import="java.util.*,com.el.*"%>
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<%
List list = new ArrayList();
list.add("abc");
list.add("def");
list.add("gh");
request.setAttribute("list", list);
Person per = new Person();
Name n = new Name();
n.setFirstName("Allen");
n.setLastName("Iversen");
per.setAge(45);
per.setName(n);
request.setAttribute("per", per);
%>
</head>
<body>
<c:set var="name" value="rose" scope="request"/>
<c:out value="${name}"/><br>
<c:if test="${name=='rose'}">
very good
</c:if>
<br>
my name is ${name}
<hr>
<!-- 0是第一个元素 -->
${list[0]}${list[1]}${list[2]}
<hr>
<!-- 嵌套访问 -->
${per.name.firstName }${per.name.lastName };
</body>
</html>