EL表达式目的就式简洁jsp的写法
基本概念
EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。EL 语法很简单,使用上很方便。${}是其语法的关键标志
测试数据
js中取出js数据
比较麻烦
那么EL表达式就可以很好的解决这个问题
EL表达式可以从request对象中取出请求参数
<%–el表达式从request中获取请求参数–%>
${param.username}
如果没有写作用域:
开始往最小的作用域开始寻找,
获取对象属性的原理
底层采用了反射机制, 调用的是相应属性的getter方法
${requestScope.user.username }
//获取对象
User value =(User)request.getAttribute(“user”);
//获取对象对应的类
Class clazz = value.getClass();
//通过属性获取属性对应的操作方法
Method method = clazz.getMethod(“get”+“Userame”);
//开始执行
Object returnValue = method.invoke(value);
总结:
EL表达式定义在JSP页面上, 在转译之后的java文件中, 会被转化成java代码
EL表达式是一种后台技术, 服务器上运行, 不是在浏览器上运行,不能用于HTML页面
EL表达式底层是通过反射实现的, 在获取对象属性值时是通过对象的get方法实现的
常用的运算符
1)常用的算术运算符
2)常用的关系运算符
${!(num==10)}
${not (num==10)}
条件运算符
${条件表达式? 语句1 : 语句2}
${empty 表达式}
返回布尔值判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值。
<%
int score =(int)(Math.random()*101);
pageContext.setAttribute("score",score);
%>
${score}
${score ge 90 and score le 100?"A":""}
${score ge 80 and score le 89?"B":""}
${score ge 70 and score le 79?"C":""}
${score ge 60 and score le 69?"D":""}
${score lt 60?"E":""}
<br/>
<%
pageContext.setAttribute("a",null);
pageContext.setAttribute("b","");
int[] arr ={};
pageContext.setAttribute("arr",arr);
List list =new ArrayList() ;
pageContext.setAttribute("list",list);
%>
判断null
${empty a?"数据没找到":a} <br/>
判断""
${empty b} <br/>
判断空数组
${empty arr} <br/>
判断空集合
${empty list} <br/>
判断空集合
${list.size() eq 0} <br/>