EL表达式
Posted 一宿君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式相关的知识,希望对你有一定的参考价值。
1、认识EL表达式
- 全称(Expression Language)
- EL表达式提供了获取对象以及属性的简单方法
Jsp写法:<%= session.getAttribute("name") %>。 EL表达式写法:"${sessionScope.name}"
注意:
EL表达式写在JSP的html代码中,而不能写在<%与%>之间。
2、EL表达式的格式
-
用美元符号“$”定界,内容包括在花括弧“{}”中;
-
EL表达式提供了获取对象以及属性的简单方法,某些情况下EL表达式完全可以替代JSP脚本或者JSP的行为;
3、EL表达式兼容性问题
三种方法解决EL表达式无法使用的问题:
在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JSP 2.0支持。
- 3.1、第一种修改web.xml文件
//此处version要达到2.4以上 <web-app version="3.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd">
- 3.2、第二种设置某个jsp页面使用el表达式:需要在jsp页面加上(每个页面都要加,过于繁琐,不推荐)
<%@ page isELIgnored="false"%>
- 3.3、第三种web.xml文件中加上下列代码,每个jsp页面都可以使用(推荐使用):
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> </jsp-property-group> </jsp-config>
4、 EL表达式的基本语法
-
EL 提供.和[]两种运算符来存取数据。
-
通常情况下两者是通用的:
${user.name} ${user["name"]}
-
“[]”还可以用来对集合元素进行定位:
${booklist[0].price}
-
以下两种情况必须使用”[]”:
1.包含特殊符号: ${user.first-name}错误写法 ${user[“first-name”]}正确写法 2.通过变量动态取值: ${user[param]}
5、EL的变量
- EL存取变量数据的方法很简单,例如:${username}。
- 它的意思是取出某一范围中名称为username的变量。
- EL表达式的查找顺序
- EL实现获取param中的值
- app3.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="app4.jsp" method="post"> <input type="text" name="user" value="${param.user}" /> <input type="submit" value="提交" /> </form> </body> </html>
- app4.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% if(request.getParameter("user") != null){ if(request.getParameter("user").equals("user")){%> "欢迎用户" <% }else if(request.getParameter("user").equals("admin")){ %> "欢迎管理员" <%} }%> </body> </html>
6、EL表达式的隐式对象
- 与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。
- 例如我们要取得用户的请求参数时,可以利用下列方法:
request.getParameter(String name) request.getParameterValues(String name)
- 在EL中则可以使用param和paramValues两者来取得数据。
${param.name} ${paramValues.name}
7、EL运算符
- EL运算符允许对数据和文字进行组合比较。
- 最常用的表达式
为空判断:${empty param.name} 三元运算:${A?B:C} 算数运算:${A*(B+C)}
- 算数运算符:
- 关系运算符:
- 逻辑运算符和其他运算符:
以上是关于EL表达式的主要内容,如果未能解决你的问题,请参考以下文章