目录
EL表达式
概念:
EL(Expression Language) 是为了使JSP写起来更加简单。它提供了在 JSP 中简化表达式的方法,让JSP代码更简化。通过EL表达式获取Java中属性的值,减少JSP上的Java代码,使其更加简单。
语法:
EL表达式可以在jsp中访问模型对象,格式”${}“。
如${name},(没有标注范围的话则从小范围找到大范围,依次为pageScope,requestScope,sessionScope,applicationScope)获取name的值。
以下做个在requestScope范围的演示
操作符:
JSP 表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:
术语 | 定义 |
---|---|
算术型 | +、-(二元)、*、/、div、%、mod、-(一元) |
逻辑型 | and、&&、or、||、!、not |
关系型 | ==、eq、!=、ne、<、lt、>、gt、<=、le、>=、ge。可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文字进行比较。 |
空 | empty 空操作符是前缀操作,可用于确定值是否为空。 |
条件型 | A ?B :C。根据 A 赋值的结果来赋值 B 或 C。 |
jstl标签
jslt概念:
JSTL(Java server pages tag library,即JSP标准标签库)为JSP Web开发人员提供一个标准通用的标签库。这些标签取代JSP页面上的Java代码,从简化代码。
使用条件:
条件一:要在JSP页面中使用JSTL标签,需使用taglib指令引用标签库。
条件二:要在JSP中使用JSTL标签,还需要下载安装JSTL实现(Implementation)。
JSTL1.2实现的下载地址为:https:jstl.dev.java.net,下载文件为jstl-impl-1.2.jar,将该文件复制到Web应用程序的WEB-INFlib文件夹中即可使用JSTL。
常用标签:
<c:if test=""></c:if> 相当于Java中if语句
<c:forEach itmes="${}" var="" varStatus=""></c:forEach> (itmes容器对象 value临时变量 varStatus循环状态 ) 相当于Java中foreach语句遍历容器 如foreach(Arraylist list : name){}
<c:forEach begin="1" var="" end="10" var="i"></c:forEach> (begin开始 end结束 var临时变量 ) 相当于Java中for语句 如for(int i=1;i<=10;i++){}
<c:when test=""></c:when> <c:otherwuise test=""></c:otherwuise> 相当于Java中if语句相当于Java中switch语句
jstl标签小demo:
<%@ page import="java.util.ArrayList" %>
<%@ page import="javaweb.user.User" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>jstldemo</title>
</head>
<body>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
ArrayList list = new ArrayList();
list.add(new User("湛山", "13", new Date()));
list.add(new User("王五", "16", new Date()));
list.add(new User("李色", "19", new Date()));
request.setAttribute("list", list);
%>
<table width="500" align="center" border="2">
<tr>
<td>排序</td>
<td>名字</td>
<td>年龄</td>
<td>录入日期</td>
</tr>
<c:forEach items="${list}" var="user" varStatus="stat">
<c:if test="${stat.count % 2 ==0}">
<tr bgcolor="aqua">
<td>${stat.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.birstr}</td>
</tr>
</c:if>
<c:if test="${stat.count % 2 !=0}">
<tr bgcolor="#008b8b">
<td>${stat.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.birstr}</td>
</tr>
</c:if>
</c:forEach></table>
</body>
</html>
结果如图: