1.0 EL概述和基本语法
EL表达式:Expression Language表达式语言
目的:简化jsp中java代码开发,代替脚本表达式<%=username%>
它不是一种开发语言,是jsp中获取数据的一种规范
格式如: ${EL表达式} 等价于pageContext.findAttribute(name)
一般jsp内是不用java代码的
<%
pageContext.setAttribute("user","张三",2);
pageContext.setAttribute("password","123456",3);
request.setAttribute("age","18");
TBuser tBuser = new TBuser("张四","12");
request.setAttribute("users",tBuser);
%>
<html>
<head>
<title>EL的基础使用</title>
</head>
<body>
<%--普通获取--%>
普通获取
<br/><%=pageContext.findAttribute("user")%>
<br/><%=session.getAttribute("password")%>
<br/><%=pageContext.getAttribute("age",2)%>
<%--使用方法 ${} --%>
<%--不写作用域 按作用域大小 从小到大依次查询 等价于pageContext.findAttribute(name)--%>
<br/>${user}
<br/>这是一个类${users}
<br/>这是一个类的属性 用户名:${users.user}
</body>
</html>
1.1使用list和Map集合获取
<html>
<head>
<title>List和Map的使用</title>
</head>
<body>
<%--使用List和Map集合--%>
<br>
<%
List<String> list =new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
pageContext.setAttribute("list", list);
Map<String,String> map =new HashMap<String,String>();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
pageContext.setAttribute("map", map);
%>
<h1>1.以数组的下标形式获取list值</h1>
${list[0]}<br>
${list[1]}<br>
${list[2]}<br>
<h1>2.以提供的方法get(index)</h1>
${list.get(0)}
<h1>3.使用El表达式获取map中的值(以key的形式获取)</h1>
${map.a}<br>
${map.b}<br>
${map.c}<br>
<h1>4.使用El表达式获取map中的值</h1>
${map['a']}
</body>
</html>
2.0使用EL表达式执行运算、empty关键字
执行运算
算术运算
${10+20 }<br/>
${10-20 }<br/>
${10*20 }<br/>
${3%5}<br/>
关系运算
${10==9 }<br/>
${"abc"=="abc" }<br/>
${s1==s2 } equals<br/>
${s1 eq s2 }<br/>
${10>20}<br/>
${10 gt 20}<br/>
${5 < 10}<br/>
${5 lt 10}<br/>
${5 != 10}<br/>
${5 ne 10}<br/>
三目运算
${score>80?"优秀":"一般" }<br/>
${flag==0?"没有激活":flag==1?"激活":"删除" }<br/>
${sex==0?"男":"女" }<br/>
逻辑运算
${true && false}<br/>
${true || false}<br/>
${!true}<br/>
${true and false}<br/>
${true or false}<br/>
${not true}<br/>
empty关键只要内容是空true
<% String s1="";
pageContext.setAttribute("s1", s1);
String s2=null;
pageContext.setAttribute("s2", s2);
String s3="122222";
pageContext.setAttribute("s3", s3);
List list1 =new ArrayList();
pageContext.setAttribute("list1", list1);
%>
<!-- empty关键只要内容是空true -->
${empty s1}<br>
${empty s2}<br>
${empty s3}<br>
${empty list1}<br>
3.0 隐式对象(11个)
JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:
pageContext页面上下文,可以获取jsp中其他八个内置对象
pageScope、requestScope、sessionScope、applicationScope表示四个域对象中集合
param 表示request.getParameter(“username”); ${param.username}
paramvalues 表示request.getPrameterValues(“hobby”); ${paramValues.hobby}
header 表示 request.getHeader(“accept”); ${header.accept};
headerValues 表示 request.getHeaderValues(“accept-encoding”); ${headerValues[“accept-encoding”][0]}
cookie 表示 request.getCookies(); ${cookie.JSESSIONID}
initParam 表示 ServletContext(application)初始化参数