<%@ page contentType="text/html;charset=UTF-8" language="java" %>
在这种情况下,el表达式是被支持的。例如
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${
3>4}
</body>
</html>
在浏览器上显示的直接是false(浏览器直接判断3不大于4).
但是如果添加isELIgnored="true"这个条件,那么浏览器就会忽略el的表达式。isELIgnored默认值是false。
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="true" %>
上面的方法只是将页面全部的el语法都忽略,也可以在$ 前面添加一个 / ,这样就可以忽略当前这个el表达式,这种方法更加灵活的显示el语句字符串
/$ {
3>4}
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${
3>4}
/$ {
3>4}
<h4>empty运算符</h4>
<%
String str = "abc";
request.setAttribute("str",str);
List list = new ArrayList();
request.setAttribute("list",list);
%>
${
empty str}<br><%--判断str是否为null,获取判断长度是否为0--%>
${
not empty list}<%--表示判断字符串、集合、数组对象是否不为null 并且 长度>0--%>
</body>
</html>
el表达式只能从域对象中获取值
语法:
(1)$ {域名称.键名}:从指定域中获取指定键的值
⋅ 域 名 称 ·域名称 ⋅域名称:
①. pageScope从pageContext域中获取值。
②. requestScope从request域中获取值。
③. sessionScope从session域中获取值。
④. applicationScope从application(ServletContext)域中获取值。
⋅ 举 例 ·举例 ⋅举例:在request域中存储了name=张三
⋅ 获 取 ·获取 ⋅获取:${requestScope.name}
(2)${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取域中的数据</title>
</head>
<body>
<%
//在域中存储数据
session.setAttribute("name","李四");
request.setAttribute("name","张三");
session.setAttribute("age","23");
%>
<h3>el获取值</h3>
${
requestScope.name}
${
sessionScope.age}
${
name}
</body>
</html>
package cn.itcast.domain;
import java.text.SimpleDateFormat;
import java.util.Date;
public class User {
private String name;
private String age;
private Date birthday;
/**
* 逻辑视图
* @return
*/
public String getBirStr(){
if (birthday != null){
//1.格式化日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//2.返回字符串即可
return sdf.format(birthday);
}else {
return "";
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
<%@ page import="cn.itcast.domain.User" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取数据</title>
</head>
<body>
<%
User user = new User();
user.setName("张三");
user.setAge("23");
user.setBirthday(new Date());
request.setAttribute("u",user);
%>
<h3>el获取对象中的值</h3>
${
requestScope.u}<br>
<%--
通过的是对象的属性来获取
setter或getter方法,去掉set或get,在将剩余部分,首字母变为小写
setName--->Name--->name
--%>
${
requestScope.u.name}<br>
${
requestScope.u.age}<br>
${
requestScope.u.birthday}<br>
${
requestScope.u.birthday.year}<br>
${
u.birStr}<br>
</body>
</html>
<%@ page import="cn.itcast.domain.User" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取数据</title>
</head>
<body>
<%
User user = new User();
user.setName("张三");
user.setAge("23");
user.setBirthday(new Date());
request.setAttribute("u",user);
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add(user);//在list集合里面存储user对象
request.setAttribute("list",list);
%>
<h3>el获取List中的值</h3>
${
list}<br>
${
list[0]}<br> <%--获取第一个元素--%>
${
list[1]}<br> <%--获取第二个元素--%>
${
list[10]}<br> <%--获取第十个元素的值,角标越界,并不会报错。也不会在显示什么--%>
${
list[2].name}
</body>
</html>
Map集合:
(1)$ {域名称.键名.key名称}
(2)$ {域名称.键名[“key名称”]}
<%@ page import="cn.itcast.domain.User" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取数据</title>
</head>
<body>
<%
User user = new User();
user.setName("张三");
user.setAge("23");
user.setBirthday(new Date());
request.setAttribute("u",user);
Map map = new HashMap();
map.put("sname","李四");
map.put("gender","男");
map.put("user",user);//在Map集合里面存储user对象
request.setAttribute("map",map);
%>
<h3>el获取Map中的值</h3>
${
map.gender}<br>
${
map["gender"]}<br>
${
map.user.name}<br>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el隐式对象</title>
</head>
<body>
${
pageContext.request}<br>
<h4>在jsp页面动态获取虚拟目录</h4>
${
pageContext.request.contextPath}<br><%--获取虚拟目录--%>
</body>
</html>