EL表达式、使⽤EL获取域中数据、EL内置对象、动态获取项⽬名称(页码
EL1)
EL(Expression Language)是为了使JSP写起来更加简单。表达式语⾔的灵感来⾃于ECMAScript和XPath表达式语⾔,它提供了在JSP 中简化表达式的⽅法,EL表达式可以嵌⼊在Jsp内部,减少Jsp脚本的编写,让Jsp的代码更加简化。EL出现的⽬的是要替代Jsp页⾯中脚本的编写。
El表达式最重要的作⽤是从域中取数据
其中最重要的是EL的全域查
<!-- 使⽤el表达式全域查 -->
${company }
${user.name }
${list[1].name }
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="cn.aynortechnology.domain.*" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- 模拟域中的数据 -->
<%
//往域中存储⼀个字符串
request.setAttribute("company", "Aynor Heavy Industry");
//往域中存储⼀个对象
User user = new User();
user.setId(1);
user.setName("aynor");
user.setPassword("20190222**");
session.setAttribute("user", user);
/
/往域中存储⼀个集合
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setId(1);
user1.setName("aynor");
user1.setPassword("20190222**");
list.add(user1);
User user2 = new User();
user2.setId(1);
user2.setName("aynor");
user2.setPassword("20190222**");
list.add(user2);
application.setAttribute("list", list);
%>
<!-- 脚本⽅式取出域中值 -->
<%=Attribute("company") %>
<%
User sessionUser = (Attribute("user");
out.Name());
%>
<hr/>
<!-- 使⽤EL表达式获得域中的值 -->
${requestScopepany }
${sessionScope.user.name }
${applicationScope.list[1].name }
<!-- 使⽤el表达式全域查 -->
${company }
${user.name }
${list[1].name }
</body>
</html>
就像 JSP 的 Java 代码块及表达式块中可以使⽤九个内置对象⼀样,EL 表达式中,同样也存在有内置对象,并且存在 11 个内置对象。EL是JSP内置的表达式语⾔
JSP2.0开始,不让再使⽤Java脚本,⽽是使⽤EL表达式和动态标签来代替Java脚本
EL替代的是<%=… %>,也就是说EL只能做输出
EL可以输出的东西都在11个内置对象中,11个内置对象,其中10个是Map,只有pageContext不是Map,它就是PageContext类型,EL所有内置对象如下:
pageScope:获取pageContext域属性,相当于Attribute("xxx")
requestScope:获取request域属性,相当于Attribute("xxx")
sessionScope:获取session域属性,相当于Attribute("xxx")
applicationScope:获取application域属性,相当于Attribute("xxx")
param:对应参数,它是⼀个Map,其中key是参数,value是参数值,适⽤于单值的参数,相当于Parameter("xxx")
paramValues:对应参数,她是⼀个Map,其中key是参数,value是多个参数值,适⽤于多值的参数,相当于ParameterValues("xxx")
header:对应请求头,它是⼀个Map,其中key表⽰头名称,value是单个头值,适⽤于单值的请求头,相当于Header("xxx")
headerValues:对应请求头,它是⼀个Map,其中key表⽰头名称,value是多个头值,适⽤于多值的请求头,相当于Headers("xxx")
initParam:获取l中<context-param>内的参数,${ },xxx就是<param-name>标签内的值,进⽽得到<param-value>中的值
cookie:⽤于获取cookie,Map<String,Cookie>,其中key是cookie的name,value是cookie对象,例如${cookie.JSESSIONID.value }就是获取sessionId
pageContext:可以获取JSP九⼤内置对象,相当于使⽤该对象调⽤getxxx()⽅法,例如Request()可以写为${quest)
其中最为重要的是使⽤el获取项⽬名称的代码
<!-- 获取项⽬名称 -->
${tPath }
⽤法如下,动态获取项⽬名称,⾮常常⽤el表达式获取session中的值
<form action="${tPath }/el/form.jsp" method="post">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="${tPath }/xxx/css">
<script type="text/javascript" scr="${tPath }/yyy.js"></script>
<title>Insert title here</title>
</head>
<body>
<form action="${tPath }/el/form.jsp" method="post">
<input type="text" name="username"><br>
<input type="password" name="password"><br>
<input type="checkbox" name="hobby" value="zq">⾜球
<input type="checkbox" name="hobby" value="pq">排球
<input type="checkbox" name="hobby" value="ppq">乒乓球<br>
<input type="submit" name="提交"><br>
</form>
<img alt="" src="${tPath }/1.jpg">
<img alt="" src="${tPath }/2.jpg">
<img alt="" src="${tPath }/1.jpg">
</body>
</html>
内置对象的使⽤
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- 获得表单的参数 -->
<%
%>
<!-- 使⽤el获得参数 -->
${param.username }
${header["User-Agent"] }
${initParam.aaa }
${cookie.name }
<!-- 通过el表达式获得request对象 -->
<!-- 获取项⽬名称 -->
${tPath }
<!-- el可以执⾏表达式运算 -->
${1+1 }
${1==1?true:false }
<!-- empty 判定某个对象是否是null,是null返回true -->
${empty user }
${user==null?true:false }
</body>
</html>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论