Java Web学习 Day06 JSP标签、JSTL标签、EL表达式
1、EL表达式:${ }
-
获取数据
-
执行运算
-
获取web开发的常用对象
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api --> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/taglibs/standard --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
2、JSP标签
<%-- jsp:include--%>
<jsp:forward page="jsptest.jsp">
<jsp:param name="name" value="lantian"/>
<jsp:param name="age" value="22"/>
</jsp:forward>
<%--取出参数--%>
姓名:<%=request.getParameter("name")%>
年龄:<%=request.getParameter("age")%>
3、JSTL表达式
JSTL标签库的使用是为了弥补HTML标签的不足
核心标签
核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
标签 描述
<c:out> 用于在JSP中显示数据,就像<%= ... >
<c:set> 用于保存数据
<c:remove> 用于删除数据
<c:catch> 用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if> 与我们在一般程序中用的if一样
<c:choose> 本身只当做<c:when>和<c:otherwise>的父标签
<c:when> <c:choose>的子标签,用来判断条件是否成立
<c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import> 检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach> 基础迭代标签,接受多种集合类型
<c:forTokens> 根据指定的分隔符来分隔内容并迭代输出
<c:param> 用来给包含或重定向的页面传递参数
<c:redirect> 重定向至一个新的URL.
<c:url> 使用可选的查询参数来创造一个URL
JSTL标签使用步骤
- 引入对应的taglib
- 使用其中的方法
- 在Tomcat中也需要引入jstl包,否则会报错:JSTL解析错误 (tocamat8.5)
c:if
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h4> if测试</h4>
<hr/>
<form action="core.jsp" method="get">
<%--
EL表达式获取表单中的数据
${param.参数名}
--%>
<input type="text" name="username" value="${param.username}">
<input type="submit" value="登录">
</form>
<%--判断如果提交的用户名是管理员,则登录成功--%>
<c:if test="${param.username=='admin'}" var="isadmin" scope="application">
<c:out value="欢迎管理员登陆"/>
</c:if>
<%--自闭和标签--%>
<c:out value="${isadmin}"/>
</body>
</html>
c:foreach
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
ArrayList<String> people = new ArrayList<>();
people.add(0,"张三");
people.add(1,"赵四");
people.add(2,"王五");
people.add(3,"赵六");
people.add(4,"田七");
request.setAttribute("list",people);
%>
<%--
var, 每一次遍历出来的变量
items 要遍历的对象
begin 开始
end 结束
step 步长
--%>
<c:forEach var="people" items="${list}">
<c:out value="${people}"/> <br/>
</c:forEach>
<hr/>
<c:forEach var="people" items="${list}" begin="1" end="3" step="2" >
<c:out value="${people}"/> <br>
</c:forEach>
</body>
</html>