目录
一、EL表达式
Expression Language表达式语言,用于简化JSP页面内的Java代码主要功能:获取数据
语法:
${expression}
获取域中存储的key为brands的数据
1、EL操作符
1、操作符“.”
获取对象的属性,例如:${news.title}
2、操作符“[ ]”
获取对象的属性,例如:${news[“title”]}
获取集合中的对象,例如:${newsList[0]}
EL运算符
运算符 | 说明 |
( ) |
改变执行的优先级,例如${3*(4+5)} |
+,-,*,/,% |
算术运算符,例如${3+2} |
==,!=,>,>=,<,<= |
关系运算符,例如${a==b}或${a eq b} |
&&,||,! |
逻辑运算符,例如${true&&false} |
?: |
条件运算符,例如${a>b?1:2} |
empty |
用于检测变量名是否为空,是否等于NULL,例如${empty name} |
关系运算符 | 示例 | 结果 |
== 或 eq |
${5 == 5}或${5 eq 5} |
true |
!= 或 ne |
${5 != 5}或${5 ne 5} |
false |
< 或 lt |
${3 < 5}或${3 lt 5} |
true |
> 或 gt |
${3 > 5}或{3 gt 5} |
false |
<= 或 le |
${3 <= 5}或${3 le 5} |
true |
>= 或 ge |
${3 >= 5}或${3 ge 5} |
false |
2、EL功能
取得JavaBean对象的属性
${news.title}
取得数组、List、Map类型对象的元素
${list[0]}
使用各类运算符对原始数据进行简单处理
${totalRecordCount/pageSize}
屏蔽一些常见的异常
${username}
能实现简单的自动类型转换
${news}相当于(News)request.getAttribute("news")
3、EL访问作用域
两种方式取数据:
使用Java小脚本:request.getAttribute(“news”);
使用EL表达式:${ news } 或者 ${ requestScope.news }
JavaWeb中的四大域对象:
作用域 | Java代码取值 | EL取值 |
请求作用域 |
request.getAttribute(“news”); |
${ requestScope.news } |
会话作用域 |
session.getAttribute(“username”); |
${ sessionScope.username } |
程序作用域 |
application.getAttribute(“count”); |
${ applicationScope.count } |
页面作用域 |
pageContext.getAttribute(“userNum“); |
${ pageScope.userNum } |
el表达式获取数据,会依次从这4个域中寻找,直到找到为止
二、JSTL标签
JSP标准标签库(Jsp Standarded Tag Library),使用标签取代JSP页面上的Java代码
1、JSTL使用步骤
1、下载jstl.jar和standard.jar包
2、将这两个包复制到WEB-INF\lib目录
3、在JSP页面中添加指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
2、JSTL标签分类
标签库 | 资源标识符 | 前缀 |
核心标签库 |
http://java.sun.com/jsp/jstl/core |
c |
国际化/格式化标签库 |
http://java.sun.com/jsp/jstl/fmt |
fmt |
XML标签库 |
http://java.sun.com/jsp/jstl/xml |
x |
数据库标签库 |
http://java.sun.com/jsp/jstl/sql |
sql |
函数标签库 |
http://java.sun.com/jsp/jstl/functions |
fn |
核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
国际化/格式化标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
3、JSTL标签的使用
<c:out/>标签
语法:
value="value":需要输出显示的表达式
default="default":默认输出显示的值
escapeXml="true|false":是否对输出的内容进行转义
<c:out value="value" default="default" escapeXml="true|false" />
设置变量
var="name" :表示变量名称
value= "value":表示变量的值
scope="scope":存在的作用域
<c:set var="name" value= "value" scope="scope" />
设置对象属性
value= "value":表示属性的值
target="target":表示对象
property="propertyName":表示对象的属性名称
<c:set value= "value" target="target" property="propertyName" />
<c:forEach/>标签
<c:forEach/>迭代标签:实现对集合的遍历
var="varName":集合中元素的名称
items="items":集合对象
varStatus="varStatus":当前循环的状态信息,例如循环的索引号
<c:forEach var="varName" items="items" varStatus="varStatus">
……
</c:forEach>
<c:if/>标签
<c:if/>条件标签:实现条件的判断
var="varName":判断的结果
scope="scope":判断结果存放的作用域
<c:if test="condition" var="varName" scope="scope">
……
</c:if>
使用JSTL构建URL
<c:url/>超链接标签
<c:url value="url" />
<c:param/>参数标签
name="name":参数的名称
value="value":参数的值
<c:param name="name" value="value"/>
<c:import/>导入标签
url="URL":导入资源的路径
<c:import url="URL" />
<fmt:formatDate/>标签
<fmt:formatDate/>格式化标签:实现格式化的日期和时间显示
value="date":时间对象
pattern="yyyy-MM-dd HH:mm:ss":显示格式
<fmt:formatDate value="date" pattern="yyyy-MM-dd HH:mm:ss"/>
标签名 | 作用 |
<c:out /> |
输出文本内容到out对象,常用于显示特殊字符,显示默认值 |
<c:set/> |
在作用域中设置变量或对象属性的值 |
<c:remove/> |
在作用域中移除变量的值 |
<c:if/> |
实现条件判断结构 |
<c:forEach/> |
实现循环结构 |
<c:url/> |
构造url地址 |
<c:param/> |
在url后附加参数 |
<c:import/> |
在页面中嵌入另一个资源内容 |
<fmt:formatDate/> |
格式化时间 |
<fmt:formatNumber/> |
格式化数字 |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97177.html