EL(Expression Language)表达式语言:用于计算和输出存储在标志位置(page、request、session、application)的java对象的值;
EL是JSP2.0规范的一部分,只要容器支持Servlet2.4/JSP2.0,就可以在JSP2.0网页中直接使用EL。
基本格式:${表达式}
所有的EL都是以“${”开始,以“}”结尾
表达式与开始符和终结符的空格被忽略
表达式的值为null,则在页面中显示为一个空字符串,而不是null
运算符
算术运算:+、-、*、/或div、%或mod;
关系运算:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge;
逻辑运算:&&或and、||或or、!或not;
特殊运算:empty(是否为null或空字符串)、?:(三元运算符);
转意符:\${变量};
作用域(以下11个EL作用域名称也是EL提供的隐式对象)
使用EL的时候,默认会以一定顺序(pageContext、request、session、application)搜索四个作用域,将最先找到的变量值显示出来。
访问JavaBean
第一种 点号记法:${BeanName.beanProperty}
第二种 数组记法:${BeanName[“beanProperty”]}
两种方法等同,在访问Bean属性时,第二种方法很少用
EL常用的隐式对象
开启和关闭EL表达式
开启方法:在servlet2.4之后默认方法为false,即可以不写或<%@ page isELIgnored="false" %>
关闭方法:<%@ page isELIgnored="true" %>
还有一种批量禁用EL的方法,可以在WEB-INF/web.xml中使用jsp-property-group标签批量禁用el,web.xml中进行如下配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
</web-app>
JSTL(JavaServerPages Standard Tag Library)JSP标准标签库;
JSTL是SUN公司制定的一个JSP标签库,由apache jakarta组织负责维护的开源项目,目的是用标签代替java代码片段。
JSTL1.0支持servlet2.3和JSP1.2规范.已通过Tomcat4版本测试.
JSTL1.1支持servlet2.4和JSP2.0规范.已通过Tomcat5版本测试.
JSTL的优点
JSTL标签库分类
导入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
JSTL Core 标签库
Core 标签库,又被称为核心标签库,该标签库的工作是对于 JSP 页面一般处理的封装。在该标签库中的标签一共有 14 个,被分为了四类,分别 :
多用途核心标签:<c:out> 、<c:set> 、<c:remove> 、<c:catch> 。
条件控制标签:<c:if> 、<c:choose> 、<c:when> 、<c:otherwise> 。
循环控制标签:<c:forEach> 、<c:forTokens> 。
URL 相关标签:<c:import> 、<c:url> 、<c:redirect> 、<c:param> 。