JSP中EL表达式的应用
2021-03-13 17:29
标签:bean getc detail jsp页面 log 等价 pre char users 1.EL表达式的概念 EL全称Expression Language,用来简化JSP页面的数据访问操作,代替、,提供一个更清晰简洁的视图层。 通常与JSTL标签一起使用。 2.EL表达式语法 ${expression},expression为有效表达式,如常量,变量,操作符和函数调用。 3..与 [ ] 运算符 EL 提供 . 和 [ ] 两种运算符来存取数据。 ${user.name}等价于${user["name"]}或${user[‘name‘]} . 和 [ ] 也可以同时混合使用 ${requestScope.userlist[0].name},回传结果为用户数据列表中第一个用户的名字。 不过,以下两种情况,两者会有差异(转自:https://blog.csdn.net/JavaNotes/article/details/80722153): (1) 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ], 例如:${user.My-Name } 上述是不正确的方式,应当改为:${user["My-Name"] } (2) 我们来考虑下列情况: ${sessionScope.user[data]} 此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于${sessionScope.user.sex}; 假若data 的值为"name"时,它就等于${sessionScope.user.name}。 因此,如果要动态取值时,就可以用上述的方法来做,但无法做到动态取值。 4.EL表达式的简单应用 运行结果: 参考文章: https://blog.csdn.net/JavaNotes/article/details/80722153 JSP中EL表达式的应用 标签:bean getc detail jsp页面 log 等价 pre char users 原文地址:https://www.cnblogs.com/YorkZhangYang/p/12817916.html@page import="java.util.Map"%>
@page import="java.util.HashMap"%>
@page import="java.util.ArrayList"%>
@page import="java.util.List"%>
@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
@page import="entity.User"%>
DOCTYPE html>
html>
head>
meta charset="UTF-8">
title>EL表达式用法title>
head>
body>
br>获取JSP的隐式对象,并使用其中的方法
out.println("获取项目根路径:"+request.getContextPath()+"
");
out.println("获取response对象的字符集:"+response.getCharacterEncoding());
%>
br>使用EL表达式获取项目根路径:${pageContext.request.contextPath}
br>使用EL表达式获取response对象的字符集:${pageContext.response.characterEncoding}
hr>
//设置域对象的值
pageContext.setAttribute("username", "pageContext张三");
pageContext.setAttribute("password", "pageContext123456");
request.setAttribute("username", "request张三");
request.setAttribute("password", "request123456");
session.setAttribute("username", "session张三");
session.setAttribute("password", "session123456");
application.setAttribute("username", "application张三");
application.setAttribute("password", "application123456");
%>
out.println("Java程序片中获取request域对象的值");
%>
br>用户名:=request.getAttribute("username") %>
br>密码:=request.getAttribute("password") %>
br>EL从域中取出数据(EL最重要的作用)获取的顺序:依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找
br>用户名:${username}
br>密码:${password}
hr>
br>EL表达式中的隐式对象
br>\${sessionScope.username}${sessionScope.username}
br>\${requestScope.username}${requestScope.username}
br>\${username}${username}
br>\${applicationScope.username}${applicationScope.username}
hr>
br>EL借助四个域对象来读取javabean的属性值
User u = new User();
u.setName("张三");
out.println(u.getName());
request.setAttribute("user", u);
%>
br>EL读取javaBean属性:\${u.name},无法读取
br>EL读取javaBean属性:\${user.name}${user.name}
hr>
br>EL算术运算、关系运算
br>\${1+2}=${1+2}
br>\${1-2}=${1-2}
br>\${1*2}=${1*2}
br>\${1/2}=${1/2}
br>\${1 div 2}=${1 div 2}
br>\${1%2}=${1%2}
br>\${1 mod 2}=${1 mod 2}
br>\${12?true:false}=${1
>关系运算中,gt表示大于,ge表示大于等于,lt表示小于,le表示小于等于,eq表示等于,ne表示不等于
br>\${100>200}=${100>200}
br>\${100 ge 200}=${100 ge 200}
hr>
ListUser> users = new ArrayListUser>();
users.add(u);
users.add(new User("李四","123456"));
request.setAttribute("userlist", users);
%>
br>\${userlist}${userlist}
br>\${userlist[0].name}${userlist[0].name}
br>\${userlist[1].name}${userlist[1].name}
hr>
Map map1 = new HashMap();
map1.put("username", "york");
map1.put("user", u);
request.setAttribute("userlist2", map1);
%>
br>\${userlist2.username}${userlist2.username}
br>\${userlist2.user.name}${userlist2.user.name}
body>
html>