jspのJSTLタグライブラリ

jspのJSTLタグライブラリ

  • jstl
    JSTL(JSP標準タグライブラリ)とは、JSP標準タグライブラリであり、ビジネスロジックやその他の機能を完成させるために、タグの形式を使用してJSPページに埋め込むことができます。
  • jstlのポイントは何ですか?
    jstlの目的は、elと同じようにjspページのスクリプトコードを置き換えることです。
  • JSTL標準標準タグライブラリには5つのサブライブラリがあり、現在コアライブラリがよく使用されています

ここに画像の説明を挿入

JSTL表現環境の準備

  • jarパッケージをインポートします。

    ここに画像の説明を挿入

  • jstlタグライブラリを紹介します。

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

[外部リンク画像の転送に失敗しました。ソースサイトにアンチリーチリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-8LZ8nNC1-1600141877880)(C:\ Users \ Carlos \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200915111554829.png)]

JSTL expression-ifタグ

  • jstlには多くのコアタグがあり、一般的に使用されるタグはifタグとforeachタグだけです。

  • <c:if>タグ
    は、Javaコードの判断に役立ちます

  • ifタグ属性の概要

    ここに画像の説明を挿入

    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>

実行結果:

ここに画像の説明を挿入

JSTL式-タグ

  • forEachタグ
    は、Javaコードのforループの役割を果たす
  • forEachタグ属性の紹介

ここに画像の説明を挿入

<%@ 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>

実行結果:

ここに画像の説明を挿入

強化されたforループ:

<%
    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>

作用効果は以下の通りです。
ここに画像の説明を挿入

##インスタンスオブジェクトの走査:

<%@ 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>

作用効果は以下の通りです。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_37924905/article/details/108596934