##  JSTL

1、概念:JavaServer  Page  Tag  Library  JSP标准标签库

  *  是由Apache组织提供的开源的免费的jsp标签

2、作用:用于简化可替换JSP页面上的java代码

3、使用步骤:

  1、导入jstl相关jar包

  2、引入标签库:taglib指令:<%@  taglib  %>

<!--jstl-->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>

  3、使用标签

4、常用的JSTL标签

  1、if:相当于java代码的if语句

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: 21seu.ftj
  Date: 2020/3/29
  Time: 13:55
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
c:if标签
1、属性:
    *  test 必须属性,接收boolean表达式
        *  如果表达式为true,则显示if标签体内容;如果false,则不显示标签内容
        *  一般情况下,test属性值会结合el表达式一起使用
2、注意:f:if标签没有else情况,想要else则再定义一个if的jstl

--%>
<f:if test="true">
    <h1>我是真...</h1>
</f:if>
<br>
<%
//判断request域中的一个list集合是否为空,如果不为空则显示遍历集合
    List list = new ArrayList();
    list.add("111");
    request.setAttribute("list",list);
%>
<f:if test="${not empty list}">
    遍历集合...
</f:if>
</body>
</html>

  2、choose:相当于java代码的switch语句

<%--
  Created by IntelliJ IDEA.
  User: 21seu.ftj
  Date: 2020/3/29
  Time: 14:05
  To change this template use File | Settings | File Templates.
--%>
<%@ 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>
<%--完成数字编号对应星期几的案例--%>
<%
request.setAttribute("number",4);
%>
<c:choose>
    <c:when test="${number == 1}">星期1</c:when>
    <c:when test="${number == 2}">星期2</c:when>
    <c:when test="${number == 3}">星期3</c:when>
    <c:when test="${number == 4}">星期4</c:when>
    <c:when test="${number == 5}">星期5</c:when>
    <c:when test="${number == 6}">星期6</c:when>
    <c:when test="${number == 7}">星期日</c:when>
    <c:otherwise>数字输入有误</c:otherwise>
</c:choose>
</body>
</html>

  3、foreach:相当于java代码的for语句

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: 21seu.ftj
  Date: 2020/3/29
  Time: 14:12
  To change this template use File | Settings | File Templates.
--%>
<%@ 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>
<%--
    foreach:java代码的for语句
        1、完成重复的操作
        for(int i = 0; i < 10; i++){}

            *  属性:
                begin:开始值
                end:结束值
                var:临时变量
                step:步长  增长数
                varStatus:循环状态对象  count:循环的次数  index:容器中的索引,从0开始

        2、遍历容器
        List<User> list;
        for(User user : list){}

            *  属性:
                items:容器对象
                var:容器中元素的临时变量
--%>

<c:forEach begin="1" end="10" var="i" step="1" varStatus="s">
    ${i}${s.index}${s.count}
</c:forEach>
<hr>
<%
    List list = new ArrayList<>();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="li">
    ${li}
</c:forEach>
</body>
</html>

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: 21seu.ftj
  Date: 2020/3/29
  Time: 14:12
  To change this template use File | Settings | File Templates.
--%>
<%@ 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>
<%--
    foreach:java代码的for语句
        1、完成重复的操作
        for(int i = 0; i < 10; i++){}

            *  属性:
                begin:开始值
                end:结束值
                var:临时变量
                step:步长  增长数
                varStatus:循环状态对象  count:循环的次数  index:容器中的索引,从0开始

        2、遍历容器
        List<User> list;
        for(User user : list){}

            *  属性:
                items:容器对象
                var:容器中元素的临时变量
--%>

<c:forEach begin="1" end="10" var="i" step="1" varStatus="s">
    ${i}${s.index}${s.count}
</c:forEach>
<hr>
<%
    List list = new ArrayList<>();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="li">
    ${li}
</c:forEach>
</body>
</html>
















<%@ page import="com.ftj.domain.User" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: 21seu.ftj
  Date: 2020/3/29
  Time: 14:29
  To change this template use File | Settings | File Templates.
  练习:把User对象的List集合。使用jstl,el展示到jsp页面的表格table中
--%>
<%@ 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>
<%--把User对象的List集合。使用jstl,el展示到jsp页面的表格table中--%>
<%

    List list = new ArrayList<>();
    list.add(new User(1, "张三", "123", "男"));
    list.add(new User(2, "李四", "321", "女"));
    list.add(new User(3, "王五", "213", "男"));
    request.setAttribute("list", list);
%>
<table border="1" width="500" align="center">
    <th>编号</th>
    <th>姓名</th>
    <th>密码</th>
    <th>性别</th>
    <c:forEach items="${list}" var="u">
        <c:if test="${u.id % 2 == 1}">
            <tr style="background-color: darkkhaki">
                <td>${u.id}</td>
                <td>${u.username}</td>
                <td>${u.password}</td>
                <td>${u.hehe}</td>
            </tr>
        </c:if>
        <c:if test="${u.id % 2 == 0}">
        <tr>
            <td>${u.id}</td>
            <td>${u.username}</td>
            <td>${u.password}</td>
            <td>${u.hehe}</td>
        </tr>
        </c:if>
    </c:forEach>
</table>

</body>
</html>

 

Posted on 2020-03-29 14:27  夏洛蒂的手稿  阅读(125)  评论(0编辑  收藏  举报