biblioteca de etiquetas JSTL de jsp

biblioteca de etiquetas JSTL de jsp

  • ¿Qué es jstl?
    JSTL (JSP Standard Tag Library), la biblioteca de etiquetas estándar JSP, se puede incrustar en la página JSP utilizando la forma de etiquetas para completar la lógica empresarial y otras funciones.
  • ¿Cuál es el punto de jstl?
    El propósito de jstl es reemplazar el código del script en la página jsp al igual que el.
  • La biblioteca de etiquetas estándar estándar de JSTL tiene 5 subbibliotecas, y la biblioteca principal se usa a menudo en la actualidad

Inserte la descripción de la imagen aquí

Preparación del entorno de expresión JSTL

  • Importe el paquete jar:

    Inserte la descripción de la imagen aquí

  • Introduzca la biblioteca de etiquetas jstl:

    <%--引入jstl--%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core"   prefix="c"%>
    

[Error en la transferencia de la imagen del enlace externo. Es posible que el sitio de origen tenga un mecanismo de enlace anti-sanguijuela. Se recomienda guardar la imagen y subirla directamente (img-8LZ8nNC1-1600141877880) (C: \ Users \ Carlos \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200915111554829.png)]

Etiqueta de expresión-if de JSTL

  • Hay muchas etiquetas principales en jstl, y las únicas etiquetas comúnmente utilizadas son if y foreach.

  • La etiqueta <c: if>
    juega un papel en el juicio del código java

  • Introducción a los atributos de las etiquetas if

    Inserte la descripción de la imagen aquí

    web \ demo6_jstl_demo.jsp

<%--使用JSTL来简化以上代码--%>
    <%
        int a = 200;
        int b = 500;
        request.setAttribute("a", a);
        request.setAttribute("b", b);
    %>
    <%--
       test:测试条件成立
       var:  用来保存条件的结果,true或者false
       scope: 表示将结果存到哪个域中
    --%>
    <c:if test="${a > b }" var="bl" scope="session">
        <h1 style="color: green">a大于b</h1>
        <div></div>
    </c:if>
    <c:if test="${!(a > b) }">
        <h1 style="color: red">a小于b</h1>
    </c:if>

resultado de ejecución:

Inserte la descripción de la imagen aquí

Expresión de JSTL para etiqueta

  • forEach etiqueta
    desempeña el papel de bucle for del código java
  • Introducción al atributo de cada etiqueta

Inserte la descripción de la imagen aquí

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="com.lbl.bean.User" %>
<%@ page import="com.lbl.bean.Birthday" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
     for标签:
        1:普通for
         for(int i=0; i<5; i++)
         begin: 表示索引开始
         end  :表示索引结束,包含结束值
         var  :循环变量  i,  jsp会自动的将该值存放在pageContext域中
         step :每一次循环的增量
        2:增强for
 --%>
<%
    int num = 10;
    request.setAttribute("num", num);
%>
<c:forEach begin="0" end="${num}" var="i" step="1">
    <h1 style="color: red;">helloword${i}</h1>
</c:forEach>

<%
    ArrayList<String> list = new ArrayList<String>();
    list.add("baoqiang1");
    list.add("baoqiang2");
    list.add("baoqiang3");
    request.setAttribute("list", list);
%>
<%--
   for( String str: list)

   items="${list}" 从域中根据list这个键获取集合对象
   var="str"       每次循环时,jstl会自动将集合中的元素赋给str
                   每次循环时,jstl会自动将str的值存入pageContext域
   varStatus="vs"  这个参数会记录当前循环的一些状态信息
            vs.count  可以获取当前循环的次数
--%>
<c:forEach items="${list}" var="str" varStatus="vs">
    <%--${str}--%>
    现在是第${vs.count}次循环<br/>
</c:forEach>

<%
    ArrayList<User> list2= new ArrayList<User>();
    list2.add(new User("liuyan1",33,"female",new Birthday(1991,12,21)));
    list2.add(new User("liuyan2",34,"female",new Birthday(1992,12,21)));
    list2.add(new User("liuyan3",38,"female",new Birthday(1993,12,21)));
    request.setAttribute("list2", list2);
%>
<c:forEach items="${list2}" var="user">
    ${user.name} ----${user.birthday.year}<br/>
</c:forEach>

</body>
</html>

resultado de ejecución:

Inserte la descripción de la imagen aquí

Mejorado para bucle:

<%
    ArrayList<String> list = new ArrayList<String>();
    list.add("baoqiang1");
    list.add("baoqiang2");
    list.add("baoqiang3");
    request.setAttribute("list", list);
%>
<%--
   for( String str: list)

   items="${list}" 从域中根据list这个键获取集合对象
   var="str"       每次循环时,jstl会自动将集合中的元素赋给str
                   每次循环时,jstl会自动将str的值存入pageContext域
   varStatus="vs"  这个参数会记录当前循环的一些状态信息
            vs.count  可以获取当前循环的次数
--%>
<c:forEach items="${list}" var="str" varStatus="vs">
    <%--${str}--%>
    现在是第${vs.count}次循环<br/>
    ${str}次循环<br/>
</c:forEach>

El efecto de la operación es el siguiente:
Inserte la descripción de la imagen aquí

## Recorrido de objetos de instancia:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="com.lbl.bean.User" %>
<%@ page import="com.lbl.bean.Birthday" %>
<%@ page import="java.util.ArrayList" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    ArrayList<User> list2= new ArrayList<User>();
    list2.add(new User("liuyan1",33,"female",new Birthday(1991,12,21)));
    list2.add(new User("liuyan2",34,"female",new Birthday(1992,12,21)));
    list2.add(new User("liuyan3",38,"female",new Birthday(1993,12,21)));
    request.setAttribute("list2", list2);
%>
<c:forEach items="${list2}" var="user">
    ${user.name} ----${user.birthday.year}<br/>
</c:forEach>

</body>
</html>

El efecto de la operación es el siguiente:

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_37924905/article/details/108596934
Recomendado
Clasificación