怎么理解EL表达式。(它是什么)
- 其实就是一种语法,存在于JSP中。更官方的语言就是:是一种简单的数据访问语言
EL表达式有什么作用(知道它能做什么就大概知道在什么时候应用)
- 就是为了简化JSP中嵌入代码。更严格的说其实就是为了简化大量的JSP脚本
在代码中如何体现(实际操作)
- 语法格式: 如:${} 注意:只有JSP可以使用,不能使用在HTML中
数据的读取
- EL表达式能做的就是读数据 注意:EL表达式不能读取JSP中的变量
EL读取String
<%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>EL读取简单的数据</title> </head> <body> <% request.setAttribute("str", "加油!"); %> ${str} </body> </html>
EL读取String数组
<%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>EL读取String[]</title> </head> <body> <% String[] str = {"1","2","3"}; request.setAttribute("str",str); %> <%--读取整个数组 --%> ${str} </br> <%--读取某个值 --%> ${str[1]} </body> </html>
EL读取Map集合
<%@page import="java.util.HashMap"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>EL读取Map</title> </head> <body> <% HashMap<String,String> hm = new HashMap<String,String>(); hm.put("name", "小明"); hm.put("007", "发哥"); hm.put("ha ha", "呵呵呵"); request.setAttribute("hm", hm); %> 1、获取Map集合${hm }</br> 2、获取第一个值${hm.name } 或者 ${hm[name] }</br> 3、获取第二个值只能这种方式${hm["007"] }</br> 4、获取第三个值也只能这种方式${hm["ha ha"] } </body> </html>
获取类中的属性
<%@page import="test06.Prision"%> <%@page import="java.util.HashMap"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>EL读取类</title> </head> <body> <% Prision p = new Prision("明明",12); request.setAttribute("pri", p); %> 1、获取对象${pri }</br> 2、获取姓名属性${pri.name }</br> 3、获取年龄属性${pri.age } </body> </html>
数据的运算
<%@page import="test06.Prision"%> <%@page import="java.util.HashMap"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>EL读取类</title> </head> <body> <% request.setAttribute("num1", "1"); request.setAttribute("num2", "2"); request.setAttribute("str1", 10); request.setAttribute("str2", 20); %> 1、获取num1和num2的和${num1+num2 } 2、获取num1和身str1的和${num1+str1 } 3、获取str1和str2的和${str1+str2 } </body> </html> =================================== <%@page import="test06.Prision"%> <%@page import="java.util.HashMap"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>关系运算符</title> </head> <body> <% request.setAttribute("num1", "1"); request.setAttribute("num2", "2"); request.setAttribute("str1", 10); request.setAttribute("str2", 20); %> ${num1==num2 }或者${num1 eq num2 } ${!(num1==num2) }或者${not(num1 eq num2) } 三元运算符${num1==num2?"相等":"不相等" } </body> </html>
数据的判断
<%@page import="test06.Prision"%> <%@page import="java.util.HashMap"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>判断是否为空</title> </head> <body> <% String str1 = "1"; String str2=""; String str3=null; int num1=10; int num2=0; %> ${!empty str1 } ${empty str2 } ${empty str3 } ${empty num1 } ${empty num2 } </body> </html>
常见EL表达式对象
- 重点的
- 请求参数
- param
- 例:${param.xxx}
- pageContext
- 是项目上下文对象ServletContext
- cookie
- ${cookie.cookie名.value}
- param
- 请求参数
- 重点的