el表达式和jstl标签

el表达式和jstl标签

el表达式主要做用:代替JSP页面中的<%= %>标签的使用
jstl主要针对的方向是JSP页面之中的if、switch、for循环等语句的使用
java

1、 el表达式讲解:

代替什么?

el表达式主要代替JSP中的“<%= %>”,代替的是jsp中的java代码的传值。web

el表达式只能接受web域中的值【默认从最小域开始查找并接收传值】。session

4个web域是什么,以及获取传值方式 ?

一、pageContext.Attribute(" “,” "); ${pageScope.name}app

二、request.Attribute(" “,” "); ${requestScope.name}jsp

三、session.Attribute(" “,” "); ${sessionScope.name}svg

四、application.Attribute(" “,” "); ${applicationScope.name}测试

2、以el表达式引出jstl标签

前期准备:

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

在这里插入图片描述

Jstl标签【<c:forEach></c:forEach>】其余属性:

一、varStatus=“vs”属性

${vs.index} 项数 int【0开始】

${vs.count} 个数 int【1开始】

${vs.first} 是不是第一个 Boolean

${vs.last} 是不是最后一个 Boolean

二、begin=“ ”, end=" "属性

表明输出的开始和结束,表明索引,从第0项开始

Jstl标签的其余用法:

一、标签<c:if></c:if>的使用,代码以下:

<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:choose>标签的使用,代码以下:

<c:choose>
	<c:when test="${name eq '悟空'}">
		 齐天大圣
	</c:when>
	<c:when test="${name eq '八戒'}">
		天蓬元帅
	</c:when>
<c:choose>

上述为<c:choose></c:choose>标签的简单使用,选择标签,相似于switch的使用。