EL和JSTL
一、EL表达式:是Expression Language的缩写
EL表达式不区分字母的大小写,并且语法非常简单。${EL表达式},还可以只用'.'操作符和“[]”操作符来完成。
EL表达式通常用有:对象和属性,使用“.”操作符来访问对象的属性,如${a.b}。
“[]”操作符不仅可以访问对象的属性还可以访问组和集合,如:${news[“title”]},来访问news对象的title属性。
如:newsList[0],访问newsList数组中的第一个元素。
注意:1.使用[]操作符访问数据时,必须在属性名上使用双引号。
使用EL访问作用域:如果不指定作用域范围系统自动按照顺序(page->request->session->application)进行查找。
二、JSTL(Java Page Standard Tag Library ,java标准标签库)
(1).<c:out>标签:
1.可以对数据进行转义输出。在输出是可以对数据内容中HTML标记进行转义,如在数据中包含<a></a>的字符内容,若不经转义被视为解析为超链接,而转义后视为文本,escapeXml是否过滤xml文档。
2.可设置默认值等。
3.<c:out value=”值” default=”默认值” escapeXml=”true|false”/>
(2).<c:set>标签与<c:remove>标签
<c:set>标签设置变量的语法:<c:set value=”变量的值” var=”变量的名称” scope=”是哪个作用域”/>
<c:set>设置对象属性的语法:<c:set value=”属性的值” target=”对象的名称” property=”对象的属性名称”/>
<c:remove var=”变量的名称” scope=”变量存在的作用域范围”/>
注意:<c:set>与<c:remove>标签中的var属性与scope属性不能接收动态的值;
(3).<c:foreach/>迭代标签:
<c: foreach var=”集合中元素的名称” item=”集合对象” varStatus=”当前循环的状态信息,如循环的索引号”/>
(4).<c:if/>条件标签:
<c:if test=”判断的条件” var=”判断的结果“ scope=”判断结果存放的作用域”/>
(5).使用JSTL构造URL
<c:url value=”需要构造的url可以是相对路径,也可以是绝对路径”/>
在页面跳转时候需要数据的传递:<c:param/>
<c:param name=”参数的名称” value=”参数的值”/>
<c:import/>在页面中导入一个基于URL的资源,这个标签的作用和<jsp:include/>动作类似,区别在于使用<c:import/>标签不仅可以导入同一个web应用程序下的资源,还可以导入不同web应用下在资源。
<c:import url=”导入资源的url路径”/>
(6).格式化日期标签的使用:
<fmt:formatDate value=”时间对象” pattern=”yyyy-MM-dd HH-mm:ss”/>
(7).<c:choose>标签的使用
<c:choose>
<c:when test="${表达式}"></c:when>
<c:when test="${表达式}"></c:when>
<c:otherwist></c:otherwist>
</c:choose>
三、JSTL标签的使用
如果使用JSTL必须引入jstl.jar和standard.jar
在jsp页面中引入taglib标签<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>或者
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>