Day07JavaWeb【Jsp,el,jstl,综合案例】jstl标签库***

JSTL表达式概述

  • (1)什么是jstl
    JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。
  • (2) jstl有什么意义?
    jstl出现的目的同el一样也是要替换jsp页面中的脚本代码。
  • (3) JSTL标准标准标签库有5个子库,目前常使用的是他的核心库
    在这里插入图片描述

JSTL表达式-环境准备

(1)导入jar包
在这里插入图片描述

(2)引入标签库

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

JSTL表达式-if标签

  • (1)jstl的核心标签内容有很多,现在目前还常用的标签只有if、foreach标签。
  • (2)<c:if>标签
    起到java代码的判断的作用
    -(3)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表达式-for标签

  • (1)forEach标签
    起到java代码的for循环作用
  • (2)forEach标签属性介绍
    在这里插入图片描述
<%--
     for标签:
        1:普通for
         for(int i=0; i<5; i++)
         begin: 表示索引开始
         end  :表示索引结束,包含结束值
         var  :循环变量  i,  jsp会自动的将该值存放在pageContext域中
         step :每一次循环的增量
        2:增强for
 --%>
        <%
            request.getParameter("username");

            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>

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/108561107