学习笔记7:JSP与JSTL(下)

JSTL

标签的使用

java Server Pages Standard Tag Libray(JSTL):JSP标准标签库,是一个定制标签类库的集合,用于解决一些常见问题,例如迭代一个映射或集合、条件测试、XML处理,甚至数据库和访问数据库等操作。
说明:标签操作的都只能是域对象

根据功能不同分为五大子类库

    Core (核心库)  标签库的URI:http://java.sun.com/jsp/jstl/core  常用前缀:c

    I18N(国际化)   标签库的URI:http://java.sun.com/jsp/jstl/fmt 常用前缀:fmt

    SQL            标签库的URI:http://java.sun.com/jsp/jstl/sql  常用前缀:sql

    XML            标签库的URI:http://java.sun.com/jsp/jstl/xml 常用前缀:x

    Functions      标签库的URI:http://java.sun.com/jsp/jstl/functions  常用前缀:fn

下面说一说JSTL标签库中的常用重要标签,如迭代集合等几个标签。

核心标签库

Core (核心库)标签库的URI:http://java.sun.com/jsp/jstl/core
包含Web应用的常见工作,比如:循环、表达式赋值、基本输入输出等……

格式化标签库

I18N(国际化) 标签库的URI:http://java.sun.com/jsp/jstl/fmt
用来格式化显示数据的工作,比如:对不同区域的日期格式化等……

在JSP页面使用JSTL标签库,必须以下列格式使用 taglib 指令引入相关类库:

<%@taglib uri="" prefix=""%>

例如:

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

另外还需要导入两个jar包 jstl.jar 和standard.jar,因为我用的maven,所以需要添加两个依赖,如下:

	<!--jstl表达式依赖-->
    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>jstl-api</artifactId>
      <version>1.2</version>
    </dependency>
    <!--standard标签库-->
    <!-- https://mvnrepository.com/artifact/taglibs/standard -->
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>

条件动作标签

根据值不同输出不同的结果,例如在java中是利用 if、if else、switch语句来进行处理的,jstl也提供了相关标签:if、choose、when、otherwise。

If标签

    <%--
        if标签
            格式:
                <c:if test="${条件判断表达式}" var="限域变量名(也就是存放结果的变量)" scope="把结果放在哪个域">
                    ……
                </c:if>

		注意:
		1. 标签操作的一般都是域对象
		2. if标签没有else
		
    --%>
<%
    request.setAttribute("num",10);
%>


例:-------------------------------------------------------------------------------------------

<c:if test="${num>0}" var="result" scope="request">
    数值大于0
</c:if>
    
    从request域里取出结果变量
    ${result}

coose、when 和 otherwise 标签

相当于java中的 switch 和case ,otherwise相当于switch语句中的default。

格式如下:

<c:choose>
    <c:when test="${num == 1}">
        1
    </c:when>
    
    <c:when test="${num == 2}">
        2
    </c:when>
    
    <c:when test="${num == 3}">
        3
    </c:when>
    
    <c:otherwise>
        其他
    </c:otherwise>
    
</c:choose>

迭代标签

第一种:相当于for循环

<c:forEach var="i" begin="0" end="10" step="2">
    ${i}<br>
</c:forEach>

结果:
在这里插入图片描述

第二种:相当于foreach 循环
相当于例如:

for(String str : list){
    
    

}

jstl:items:要循环的数据 var:用来接受当前遍历的成员

<c:forEach items="${list}" var="str">
    ${str}
</c:forEach>

猜你喜欢

转载自blog.csdn.net/qq_40492885/article/details/115294816