JSTL和EL:
1、理解并会使用EL表达式
2、理解并会使用常用的jstl标签
EL表达式:
什么是EL:
el即表达式
el的功能:代替jsp页面中的复杂代码
el的语法:
${el exprission}
${bean.name}或${bean['name']}(这个是在属性与关键字的冲突,使用)
el特点:
1、自动转换类型
el得到某个数据时可以自己启动转换类型
对于类型的限制更加宽松
2、使用简单
相比jsp中嵌入Java,更加简单
el语法:
以“${”作为开始,以“}”作为结束
直接使用变量名获取值$
${name}
变量属性范围名称:
page:pageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null
request:requestScope
session:sessionScope
application:applicationScope
为什么使用JSTL:
虽然EL表达式可以访问JavaBean的属性,但是并不能实现在JSP中进行逻辑判断,因而要使用JSTL标签
jstl的优点:
1、提供一组标准标签
2、可用于编写各种动态jsp页面
使用jstl的步骤:
1、创建web工程,选择JSTL1.1
2、在jsp页面添加taglib指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3、使用JSTL标签
通用标签:
set:设置指定范围内的变量值
out:计算表达式并将结果输出显示
remove:删除指定范围内的变量
<!--set标签作用是在一定范围内设置属性内容 -->
<c:set var="name" value="张三" scope="session"></c:set>
<c:set var="name" value="李四" scope="application"></c:set>
<!-- out标签作用是在页面中输出信息 -->
<c:out value="${sessionScope.name}"></c:out>
<c:remove var="name" scope="session"/>
<c:out value="${sessionScope.name}" default="null"></c:out>
${applicationScope.name}
条件标签:
<%
request.setAttribute("islate", false);
request.setAttribute("name", "abc");
request.setAttribute("num", 20);
%>
<!-- 陈川周同学今天是否迟到 -->
<c:if test="${islate}">
<c:out value="你给我跪下"></c:out>
</c:if>
<c:if test="${!islate }">
<c:out value="趴下"></c:out>
</c:if>
<!--判断name属性是否为空 -->
<c:if test="${name!=null}">
不为空
</c:if>
<c:if test="${num>15}">
大于15
</c:if>
<c:if test="true" var="test" scope="request"></c:if>
${test}
当只有两种选择时,用choose:
<%
request.setAttribute("day", 1);
%>
<!-- 判断今天是否工作日 -->
<c:choose >
<c:when test="${day>0&&day<6}">
今天是工作日
</c:when>
<c:otherwise>
今天休息
</c:otherwise>
</c:choose>
迭代标签:
实现对集合中对象的遍历
<%
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("c");
request.setAttribute("letters",list);
%>
<c:forEach var="i" begin="1" end="10" >
${i}
</c:forEach>
<c:forEach items="${letters}" var="l">
${l}<br/>
</c:forEach>