EL表达式语言
EL的语法
基于ECMScript和XPath表达式语言,一种极其简单的语言称之为表达式语言Expression language。
#EL的语法
${ EL部分 }
#EL中包括.和[] 两种运算符
#例1
${ sessionScope.user.salary + 100 }
${ sessionScope["user"]["salary"] + 100 }
EL隐含对象
-
与范围相关的对象
1. pageScope:页面范围对象 2. requesetScope:请求范围对象 3. sessionScope:会话范围对象 4. applicationScope:应用范围对象
-
上下文对象
pageContext:上下文对象
-
获取表单数据
1. param:获取表单信息第一个值 2. paramValues
-
获取请求头信息对象
1. header: 获取请求头信息第一个值 2. headerValues
-
获取Context级初始化参数
initParam:获取初始化参数对象
-
获取Cookie对象
cookie:获取Cookie信息
与范围相关的对象
这4个隐含对象只能用来取得范围属性值,不能取得其他相关信息
#java脚本
pageContext.getAttribute("name1", "value1")
#El中
${pageScope.name1}
${pageScope["name1"]}
EL运算符
- 算术型
- 逻辑型
- 关系型
- 空
- 条件型
算术型
+ - * / % div mod -(二元)
空
empty
判断值是否为空
条件型
A?B:C
根据A赋值的结果来赋值B或C
#例1
<input type="text" name="firstnum" value="${param.firstnum}"> +
<input type="text" name="secondnum" value="${param.secondnum}"> =
<input type="text" name="result" value="${(empty param.firstnum)?"":(param.firstnum+param.secondnum)}">
EL函数
JSTL标记库
jsp标准标记库(java EE 5.0)
共5类标记库
- 核心标记库:核心-条件、迭代器、URL动作
- 国家化和格式标记库
- XML标记库
- SQL标记库
- 函数标记库:用于操作字符串和集合的函数
核心标记库
1. 表达式操作
<c:out>
<c:set>: 设置jsp作用域属性的值
<c:remove>
<c:catch>:捕获并处理jsp中的异常
2. 流程操作
<c:if>
<c:choose>
<c:when>
<c:otherwise>
3. 迭代操作
<c:forEach>
<c:forTokens>
4. URL操作
<c:url>:重写URL
<c:import>:导入指定的资源文件
<c:redirect>:重定向到其他页面
<c:param>:动态设定参数
核心标记库的导入
<%@ taglib prefix="c" url="http://java.sun.com/jsp/jstl/core" %>
# prefix的属性值是标记库的别名
国际化和格式化标记库的导入
<%@ taglib prefix="fmmt" uri="http://java.sum.com/jsp/jstl/fmt" %>
SQL标记库
<sql:setDataSource>:用于设置数据源
<sql:query>:用于查询
<sql:update>:更新数据库
<sql:transaction>:事务处理
<sql:param>:向sql语句提供参数
<sql:dateParam>:向sql语句提供参数
sql标记库的导入
<%@ taglib prefix="sql" uri="http://java.sum.com/jsp/jstl/sql" %>
#uri的值是指定的
#prefix是标记库别名
XML标记库
xml核心库
<x: parse>: 解析指定的xml文佳
<x: out>
<x: set>: 将xml文件中元素的实体内容或属性,保存到一个变量中
xml流程控制操作
<x: if>:用于多分支条件判断
<x: choose>
<x: when>
<x: otherwise>
xml转换操作
<x: transform>: 对xml文档通过XSLT样式表进行转换
<x: param>
XML标记库的导入
<%@ taglib prefix="x" uri="http://java.sum.com/jsp/jstl/xml" %>
函数标记库
fn: contains:判断当前字符串是否包含某个字符串
fn: containsIgnoreCase:判断当前字符串是否包含某个字符串,忽略大小写
fn: toLowerCase
fn: toUpperCase
fn: endsWith:判断当前字符串是否以某个字符串结尾
fn: startsWith
fn: substring:从当前字符串中截取子串
fn: substringBefore
fn: substringAfter
fn: trim:去掉字符串前后的空格
fn: split:将字符串按照指定的分割符分割成一组字符串
fn: join
fn: indexOf
<fn: replace>:将字符串的指定字符转换为其他字符
<fn: length>:回传一个字符串或一个集合对象的数量
<fn: escapeXml>:将具有特殊含义的字符转换为对应的Entity码