Web 编程基础之el表达式
el表达式
el表达式主要是为了简化脚本的书写的复杂,代替<%=…%>
el表达式的作用:
- 获取存放在域中的数据
- 执行运算
- 获取常见的web的对象
- 调用java的方法
格式:
${ el 表达式 }
示例展示:
-
使用el表达式取出域中的数据
实例1:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> <%--在域中放数据--%> <% pageContext.setAttribute("xingming","zhangsan"); application.setAttribute("xinmging2","lisi"); %> <%--获取域中的数据--%> ${xingming} ${xinmging2} </body> </html>
注意:el表达式和传统的脚本获取数据的区别
传统脚本的当取不到域中的数据时,会在浏览器会以null展示
el表达式在取不到域中的数据时,会以空串展示
1.当不同的域中存放相同的数据的的键时,可以使用下面的方法获取存放在域中的数据:**
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%--在域中放数据--%>
<%
application.setAttribute("data","aaaa");
request.setAttribute("data","bbbb");
session.setAttribute("data","ssss");
pageContext.setAttribute("data","pppp");
%>
${applicationScope.data}
${requestScope.data}
${sessionScope.data}
${pageScope.data}
</body>
</html>
2.使用el表达式取出数组中的值
获取角标为0的数组的值
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
int arr[]={1,2,3,4,5,6,7};
pageContext.setAttribute("arrs",arr);
%>
${arrs[0]}
</body>
</html>
3.使用el表达式取出集合中的值
通过角标获取集合中的值
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
pageContext.setAttribute("list",list);
%>
${list.get(0)}
</body>
</html>
4.el表达式支持运算
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
${100>10?true:false}
</body>
</html>
5.支持java的语法,使用java对象的方法
例如下面获取集合的长度
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
pageContext.setAttribute("list",list);
%>
${list.size()}
</body>
</html>
6.获取双链集合中的指定的值map
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
HashMap<String, String> map = new HashMap<>();
map.put("学生1","张三");
map.put("学生2","李四");
map.put("学生3","王五");
pageContext.setAttribute("map",map);
%>
<%--简化的写法--%>
${map.学生2}
<%--正式的写法--%>
${map.get("学生1")}
</body>
</html>
7.获取是对象中定义的变量的值
在普通类定义一个用户实体类
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
User user = new User("zhangsan",20);
pageContext.setAttribute("user",user);
%>
${user.name}
${user.age}
</body>
</html>
8.获取存放在数组中的对象的属性
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
User user1 = new User("zhangsan",20);
User user2 = new User("lisi", 23);
User user3 = new User("wangwu", 24);
LinkedHashMap<String, User> map = new LinkedHashMap();
map.put("s001",user1);
map.put("s002",user2);
map.put("s003",user3);
pageContext.setAttribute("map",map);
%>
${map.get("s001").name}
${map.get("s001").age}
</body>
</html>
————————————————
版权声明:本文为CSDN博主「GEX0o0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gexin0517/article/details/100773813<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
User user1 = new User("zhangsan",20);
User user2 = new User("lisi", 23);
User user3 = new User("wangwu", 24);
LinkedHashMap<String, User> map = new LinkedHashMap();
map.put("s001",user1);
map.put("s002",user2);
map.put("s003",user3);
pageContext.setAttribute("map",map);
%>
${map.get("s001").name}
${map.get("s001").age}
</body>
</html>
9.判断一个对象是否为空,判断一个容器的长度是否为0
<%--判断这个容器是否为空--%>
${empty map}
<%--判断这个容器是否不为空--%>
${not empty map}
10.el表达式的11个内置对象
pageScope、requestScope、sessionScope、applicationScope、param、paramValues、header、haederValues、initParam、cookie
el表达式的内部对象cookie对象
${cookie.给cookie起名字.value}
获取jessionion的值
${cookie.JSESSIONID.value}
11.通过el表达式获取项目的路径
${pageContext.request.contextPath}