el表达式和jstl标签
el表达式主要作用:代替JSP页面中的<%= %>标签的使用
jstl主要针对的方向是JSP页面之中的if、switch、for循环等语句的使用
一、 el表达式讲解:
代替什么?
el表达式主要代替JSP中的“<%= %>”,代替的是jsp中的java代码的传值。
el表达式只能接受web域中的值【默认从最小域开始查找并接收传值】。
4个web域是什么,以及获取传值方式 ?
1、pageContext.Attribute(" “,” "); ${pageScope.name}
2、request.Attribute(" “,” "); ${requestScope.name}
3、session.Attribute(" “,” "); ${sessionScope.name}
4、application.Attribute(" “,” "); ${applicationScope.name}
二、以el表达式引出jstl标签
前期准备:
JSTL标签:解决JSP页面中写java代码问题
引包:jstl-1.2.jar 和 standard-1.1.1.jar
测试代码:
1、JSP中引入jstl标签,采用方式,定义并且引用,代码如下:
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>//别名取c
2、新建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);
3、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>】其他属性:
1、varStatus=“vs”属性
${vs.index} 项数 int【0开始】
${vs.count} 个数 int【1开始】
${vs.first} 是否是第一个 Boolean
${vs.last} 是否是最后一个 Boolean
2、begin=“ ”, end=" "属性
代表输出的开始和结束,代表索引,从第0项开始
Jstl标签的其他用法:
1、标签<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
2、<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的使用。