Java Web学习 Day06 JSP标签、JSTL标签、EL表达式

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>
上一篇:Java数组:什么是数组


下一篇:Java-深克隆&浅克隆