一、EL表达式
EL表达式提供了在JSP中简化表达式的方法,基于可用的命名空间(PageContext属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到Java类中静态方法的可扩展函数以及一组隐式对象。
1 EL特点和使用简介
格式:${…}
例如:EL表达式${sessionScope.user.sex} 对应下面的JSP代码
<%User user = (User)session.getAttribute(“user”);
Stringsex = user.getSex();%>
EL提供.和[]两种运算符来存取 数据,[]可以访问集合或数组的元素、Bean的属性。(前提是属性要有getXXX和setXXX方法)
例如:${sessionScope.user.sex}
==
${sessionScope.user[“sex”]}
2 EL运算符
==或eq / !=或ne
<或lt / >或gt
<=或le / >=或ge
${empty A = param.name} //用于判断值是否为空,A为null/不存在/空时,返回true,否则返回false
判断是否相等:${param.password1== param.password2}
3获取表单数据
我们一般取得用户请求参数:
Request.getParameter(String name) //获得单个数值
Request.getParameterValue(String name) //获得多个同名数值,如CheckBox
在EL中则
${param.name} //获得单个数值
${paramValues.name} //获得多个同名数值
${paramValues.hobbies[0]} //获得多个同名数值中的第N个
4 EL的隐含对象
JSP对象 EL隐含对象 EL表达式 JSP
parameter param ${param.name} <%request.getParameter(“user”)%>
page pageScope
request requestScope ${requestScope.user} <%request.getAttribute(“user”)%>
session sessionScope
application applicationScope
若不写范围:${username},则依序查找page/request/session/application,有则返回值,无则返回null
二、JSTL
1 标签库
核心标签库
通用核心:<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>
格式标签库
数字日期:<fmt:formatNumber> <fmt:formatData> 等
SQL标签库
XML标签库
函数标签库
<fn:length><fn:contains> <fn:containsIgnoreCase> <fn:endsWith> 等
2 一般用途的标签
<c:out>:用于计算一个表达式并将结果输出
<c:set>:用于设置范围变量的值或者JavaBean对象的属性,
<c:set var=”username” value=”lisi”scpe=”session”/>
<c:remove>:相对于<c:set>,作用是移除范围变量
<c:remove var=”username” scope=”session”/>
<c:catch>:用于捕获其中操作所报出的异常
3 条件标签
<c:if>:用于实现Java中的if语句功能
<c:if test=”${user.visitCount==1}”>第一次访问</c:if>
<c:choose>/<c:when>/<c:otherwise>:实现条件执行
<c:choose>
<c:when test=”${row.v_money<10000}”>11</c:when>
<c:otherwise>222</c:otherwise>
</c:choose>
4 循环控制标签
<c:forEach>:将集合中的成员遍历一遍
<c:forEach items=”collection”var=”varName” [varStatus=”varStatusName”]成员集合</c:forEach>
<c:forTokens>:用来浏览字符串中所有的成员(String str = “太阳、星星 、月亮;地球|天空”)
<c:forTokens items=”${str}”delims=”、;|” var=”substr”>
<c:out value=”${substr}”/>
</c:forTokens>
5 URL相关标签
<c:import>
<c:url>
<c:redirect>