el表达式主要做用:代替JSP页面中的<%= %>标签的使用
jstl主要针对的方向是JSP页面之中的if、switch、for循环等语句的使用java
el表达式主要代替JSP中的“<%= %>”,代替的是jsp中的java代码的传值。web
el表达式只能接受web域中的值【默认从最小域开始查找并接收传值】。session
一、pageContext.Attribute(" “,” "); ${pageScope.name}app
二、request.Attribute(" “,” "); ${requestScope.name}jsp
三、session.Attribute(" “,” "); ${sessionScope.name}svg
四、application.Attribute(" “,” "); ${applicationScope.name}测试
JSTL标签:解决JSP页面中写java代码问题spa
引包:jstl-1.2.jar 和 standard-1.1.1.jarcode
一、JSP中引入jstl标签,采用方式,定义而且引用,代码以下:xml
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>//别名取c
二、新建servlet,定义测试变量以及请求转发,代码以下:
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); Map<String ,Object> map = new HashMap<String, Object>(); map.put("name", "孙悟空"); map.put("sex", "男生"); map.put("hobby", "棍"); list.add(map); map = new HashMap<String, Object>(); map.put("name", "猪八戒"); map.put("sex", "男生"); map.put("hobby", "铁爬"); list.add(map); map = new HashMap<String, Object>(); map.put("name", "沙和尚"); map.put("sex", "男生"); map.put("hobby", "杖"); list.add(map); request.setAttribute("list", list); request.getRequestDispatcher("table.jsp").forward(request, response);
三、jsp页面中利用jstl标签遍历list中的name 和sex还有hobby,代码以下:
<table border="1px" width="50%" bordercolor="pink" bgcolor="#776567"> <tr> <td>姓名</td> <td>性别</td> <td>武器</td> </tr> <%-- <c:forEach items="要遍历的集合" var="给遍历出的数据起的别名"> --%> <c:forEach items="${list }" var="map"> <tr> <td>${map.name}</td> <td>${map.sex}</td> <td>${map.hobby}</td> </tr> </c:forEach> </table>
ps:测试时应运行servlet跳转到jsp
${vs.index} 项数 int【0开始】
${vs.count} 个数 int【1开始】
${vs.first} 是不是第一个 Boolean
${vs.last} 是不是最后一个 Boolean
表明输出的开始和结束,表明索引,从第0项开始
<c:if test="${name eq '悟空'}" var="flag"> 齐天大圣 </c:if> <c:if test="${!flag}"> 一只猴子 </c:if>
上述为一个简单的if判断语句的jstl标签的写法:
若是name=悟空,则输出齐天大圣,不然输出一只猴子
ps:Jstl中的<c:if></c:if>标签没有else语句,使用方法是利用<c:if></c:if>标签判断flag
<c:choose> <c:when test="${name eq '悟空'}"> 齐天大圣 </c:when> <c:when test="${name eq '八戒'}"> 天蓬元帅 </c:when> <c:choose>
上述为<c:choose></c:choose>标签的简单使用,选择标签,相似于switch的使用。