本帖最后由 哥.兜裡有煙 于 2018-1-26 11:57 编辑
EL的概述
1.什么是EL?
EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让 Jsp的代码更加简化。
2.为什么学习EL?
简化JSP的代码,而且减少<% %>
3.使用EL表达式
语法:${ EL表达式 }
4.EL的功能:
4.1 获取数据:(JSP的四个域)
4.2 执行运算:
4.3 操作WEB开发的常用的对象:
4.4 调用Java中方法:--很少用.
EL获取数据:
1.前提:
数据必须存储在域对象中
2.格式:
2.1 普通数据 : ${ 名字 }
2.2 有索引数据 : ${ 名字[索引] }
2.3 有属性数据 : ${ 名字.属性 }
2.4 属性特殊 : ${ 名字["属性"] }
EL执行运算:
1.EL执行算数运算
${ n1 + n2 + n3 }
2.EL执行逻辑运算
${ n1<n2 && n3 < n4 } -- ${ n1<n2 and n3 < n4 }
${ n1<n2 || n3 < n4 } -- ${ n1<n2 or n3 < n4 }
${ !(n1 < n2) } -- ${ not(n1<n2) }
3.EL执行关系运算
${ n1 < n2 } -- ${ n1 lt n2 } <!-- less than -->
${ n1 > n2 } -- ${ n1 gt n2 } <!-- great than -->
${ n1 <= n2 } -- ${ n1 le n2 } <!-- less equal -->
${ n1 >= n2 } -- ${ n1 ge n2 } <!-- great equal -->
${ n1 == n2 } -- ${ n1 eq n2 } <!-- equal -->
4.EL执行三元运算
${ n1 < n2 ? "正确":"错误" }
5.empty运算(判断为不为空)
${ user == null } -- ${ empty user }
${ user != null } -- ${ not empty user }
EL操作WEB开发的常用对象11个
1. pageScope, requestScope, sessionScope, applicationScope - 获取JSP中域中的数据
2. param, paramValues - 接收参数.
${ param.id }
${ param.name }
${ paramValues.hobby[0] }
${ paramValues.hobby[1] }
3. header, headerValues - 获取请求头信息
${ header["User-Agent"] }
4. initParam - 获取全局初始化参数
${ initParam.username }
5. cookie - WEB开发中cookie //获取cookie对象
${ cookie.名字.value }
6. pageContext - WEB开发中的pageContext.//获取其他的对象
IP地址:${ pageContext.request.remoteAddr }
工程路径:${ pageContext.request.contextPath }
JSTL
JSTL的概述:
1.什么是JSTL:
JSP的标准标签库
2.为什么学习JSTL:
JSTL和EL结合 替换页面中<%%>
3.JSTL版本:
3.1 JSTL1.0 :不支持EL表达式.
3.2 JSTL1.1 和 1.2 :支持EL表达式.
4.JSTL的标签库:包含了五类标签.
core(核心标签),
fmt(国际化标签),
xml(XML标签),
sql(SQL标签),
fn(JSTL提供EL函数库5.使用JSTL:
5.1 引入JSTL的相关的jar包.
5.1.1 jstl.jar
5.1.2 standard.jar
5.2 在页面中引入标签库.<%@ taglib uri=”” prefix=”” %>
JSTL的核心标签的用法
1. <c:if>标签
< c : if test = "n1 > n2 ">
这是您第一次访问本网站,欢迎您!
</c:if>
test: 表达式 (判断条件)
中间为: 要输出的内容
判断条件成立:中间要输出的内容会输出,显示内容
判断条件不成立:中间的输入内容不会输出,不显示
2.<c:forEach>标签
2.1 遍历数组
<%
String[] arrs = {"李旭华","李冠希","董阳阳"};
pageContext.setAttribute("arrs", arrs)
%>
<c:forEach var="i" items="${ arrs }">
${ i }
</c:forEach>
2.2 遍历List集合
<%
List list = new ArrayList();
list.add("李旭华");
list.add("李冠希");
list.add("董阳阳");
pageContext.setAttribute("list", list);
%>
<c:forEach var="i" items="${ list }">
${ i }
</c:forEach>
2.3 遍历Map集合
<%
Map<String,String> map = new HashMap<String,String>();
map.put("aaa","李旭华");
map.put("bbb","李冠希");
map.put("ccc","董阳阳");
pageContext.setAttribute("map", map);
%>
<c:forEach var="entry" items="${ map }">
${ entry.key }-${ entry.value }
</c:forEach>
2.4 遍历从1到10
<c:forEach var="i" begin="1" end="10" step="2">
${ i }
</c:forEach>
2.5 遍历从100到300
<c:forEach var="i" begin="100" end="300" step="5" varStatus="status">
<c:if test="${ status.count % 3 == 0 }">
<font color="red">${ i }</font>
</c:if>
<c:if test="${ status.count % 3 != 0 }">
${ i }
</c:if>
</c:forEach>
JSTL的提供EL的函数库
${ fn:contains("Hello World","Hello") }
${ fn:length("HelloWorld") }
${ fn:toLowerCase("ABCDE") }
<c:forEach var="i" items='${ fn:split("a-b-c-d","-") }'>
${ i }
</c:forEach>
在使用<c:forEach>标签时,需要注意如下几点说明:
如果指定 begin 属性,其值必须大于或等于零;
如果指定步长(step 属性),其值必须大于或等于 1;
|
|