EL技术
概述:EL(Express lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写
EL从域中取出数据(EL最重要的作用)
从四大作用域中获取数据:
– jsp脚本:<%request.getAttribute(name);%>
– el表达式代替脚本:${requestScope.name}
– 格式:${EL 表达式}
– EL获得pageContext域中的值:${pageScope.key};
– EL获得request域中的值:${requestScope.key};
– EL获得session域中的值:${sessionScope.key};
– EL获得application域中的值:${applicationScope.key};
EL从四个域中获得某个值${key};
—同样是依次从pageContext域,request域,session域,application域中 获取属性,在某个域中获取后将不在向后寻找
<%@ page import="cn.hiluna.domain.User" %>
<%@ 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>
<%--模拟域中的数据--%>
<%
//存储字符串
request.setAttribute("company","xxxxx");
//存储对象
User user = new User();
user.setId(1);
user.setName("xjkx");
user.setPassword("ppppp");
session.setAttribute("user", user);
//存储集合
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setId(1);
user1.setName("dd");
user1.setPassword("ppppssp");
list.add(user1);
User user2 = new User();
user2.setId(1);
user2.setName("ddddd");
user2.setPassword("sdsfsd");
list.add(user2);
application.setAttribute("list",list);
%>
脚本取出域中值
<%=request.getAttribute("company")%>
<%
User sessionUser = (User)session.getAttribute("user");
out.write(sessionUser.getName());
%>
<hr/>
使用el表达式获得域中的值
${requestScope.company}
${sessionScope.user.name}
${applicationScope.list[1].name}
<hr/>
使用el全域查找
${company}
${user.name}
${list[1].name}
</body>
</html>
EL的内置对象11个
pe,requestScope,sessionScope,applicationScope:获取JSP中域的数据
- param,paramValues – 接收参数.
相当于request.getParameter() rrquest.getParameterValues() - header,headerValues – 获取请求头信息
相当于request.getHeader(name) - initParam – 获取全局初始化参数
相当于this.getServletContext().getInitParameter(name) - cookie – WEB开发中cookie
相当于request.getCookies()—cookie.getName()—cookie.getValue() - pageContext – WEB开发中的pageContext.
pageContext获得其他八大对象
${pageContext.request.contextPath}
相当于
<%=pageContext.getRequest().getContextPath%>
这句代码不能实现
获得WEB应用的名称
EL执行表达式
例如:
${1+1}
${empty user}
${user==null?true:false}