• 170819-关于JSTL的知识点


              1.JSTL(JSP Standard Tag Library)

                        [1] JSTL简介

                                   > JSTL是JSP的标准标签库   

                                   > JSTL为我们提供了一些常用的标签,供我们日常开发使用(if 、 if...else 、遍历 、 日期格式化)      

                                   > 标签库    

                                           - core :核心标签库     

                                           - 最常用的一个标签库,也就是我们熟悉c标签。  

                                           - fn :函数标签库   

                                           - 函数标签库它需要结合EL表达式使用,主要定义了一些字符串操作的方法。      

                                           - fmt :格式化标签库   

                                           - 主要用来做日期、数字的格式化以及国际化     

                                           - 20151019 2015/10/19  10/19/2015  

                                           - 10000 10,000      

                                           - sql : 数据库标签库    

                                           - 主要用来在JSP中操作数据库的,已淘汰        

                                           - xml : xml标签库 

                                           - 主要用来在JSP操作解析XML文档,已淘汰   

                                > JSTL的使用

                                           使用JSTL需要先导入两个jar包     taglibs-standard-impl-1.2.1.jar     taglibs-standard-spec-1.2.1.jar

                          [2] 核心标签库    

                                       - 导入核心标签库    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    

                                       - 核心标签库一般使用c作为前缀,所以我们也称核心标签库为c标签。   

                                       - c标签是我们JSTL中最常用的一个标签库,它里边封装了很多开发中常用的功能。   

                                       c:out   

                                           作用:向页面中输入一个内容,一般要结合EL表达式使用!   

                                           例子:<c:out value="" default="" escapeXml=""></c:out>   

                                                          属性:

                                                                  value : 要输出内容    

                                                                  default : 当内容为空时显示的默认值    

                                                                  escapeXml : 是否自动转义特殊字符,默认值为true 自动转义,一般不修改该属性   

                                      c:set   

     作用:向域中设置一个属性  

     例子:<c:set var="name" value="孙悟空" scope="request"></c:set>   

    属性:    

     var :向域中存储的属性名    

     value :向域中存储的属性值    

     scope :向那个域中添加属性,四个可选值(page request session application),默认是page   

                                     c:remove   

    作用:移除域中的一个属性   

    例子:<c:remove var="name" scope="session"/>   

    属性:    

    var :要移除的属性的名字    

    scope :要移除的属性所在的域,四个可选值(page request session application)如果不设置该属性,则默认移除四个域中指定属性。   

                                      c:if   

    作用 :相当于java中if语句   

    例子:<c:if test="${empty param.name }">     <h3>您没有输入name属性!</h3>    </c:if>   

    属性:    

    test :接收一个boolean类型的值     如果test的值为true则标签体执行     否则不执行标签体      

                                     c:choose c:when c:otherwise   

    作用:相当于if...else   

    例子:    

     <c:choose>      

    <c:when test="${param.score == 100 }">       

    <h3>恭喜您考了100分!</h3>      

    </c:when>      

    <c:otherwise>       

    <h3>恭喜你,你不及格!</h3>      

    </c:otherwise>     

    </c:choose>   

    属性:    

    when标签中的test属性: 接收一个boolean类型的值 如果test的值为true则标签体执行否则不执行标签体      

    注意:在choose标签中可以指定多个when标签,但是只有一个when会执行。     

    当所有的when标签都不执行时,则otherwise标签执行。        

    c:when和c:otherwise不能脱离c:choose使用。  

                                c:forEach   

    作用:可以在页面中对集合进行遍历   

    例子:    

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

    ${hero} <br />    

    </c:forEach>       

     <c:forEach items="${map }" var="user">     

    ${user.key} --- ${user.value} <br />    

    </c:forEach>   

    属性:   

    items:要遍历的集合    

    var:对集合中的对象引用的名字           

    注意:在遍历Map时,返回的是一组一组的键值对结构    我们可以通过对象.key获取键,通过对象.value获取值       

    作用:可以用来遍历一组数   

    例子:    

    <c:forEach begin="1" end="20" var="index" step="1">     

    <a href=#>${index}</a>    

    </c:forEach>   

    属性:    

    begin :开始的位置,注意begin不能小于0    

    end :结束的位置    

    var :引用的名字   

    step :步长,每次自增的大小   

                                 c:url   

    作用:可以创建一个完整的绝对路径   

    例子:    

    <c:url value="/index.jsp">     

    <c:param name="name" value="孙悟空"></c:param>     

    <c:param name="age" value="18"></c:param>    

    </c:url>   

                   属性:    

    value:要设置的地址,注意该地址要以/开头,否则不会加上项目名  在url标签中可以添加c:param标签,可以自动为地址拼接上请求参数。      

                                c:redirect   

    作用:请求的重定向   

    例子:    

    <c:redirect url="/index.jsp">     

    <c:param name="name" value="唐僧"></c:param>    

    </c:redirect>   

    属性:    

    url:重定向到目标地址,注意该地址不要自己添加项目名。 在redirect标签中可以添加c:param标签,可以自动为地址拼接上请求参数。       

    注意:redirect标签会自动为我们设置项目名,不需要我们手动设置!         

                                设置绝对路径的三种方式:         

                                                1.<c:set var="ctx" value="${pageContext.request.contextPath }"></c:set>     使用这种方式,可以通过${ctx}在页面中代替项目名        

                                                2.使用<c:url value="/index.jsp"></c:url>     使用url标签,它会自动为绝对路径加上项目名     

                                                3.<base href="http://${pageContext.request.serverName }:${pageContext.request.serverPort }${pageContext.request.contextPath }/" />     使用base标签可以为页面中所有的相对路径,加上项目名 

                      [3] 函数标签库     

                                作用:函数标签库需要配合EL表达式使用,它里面的方法都是一些字符串的操作    

                                           引入函数标签库:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

                                例子:          

    ${fn:contains("hello","He") } <br />

    判断前一个字符串是否包含后一个字符串          

    ${fn:containsIgnoreCase("hello","He") } <br />

    判断前一个字符串是否包含后一个字符串,不区分大小写          

    ${fn:endsWith("hello","alo") }<br /> 判断前一个字符串是否以后一个字符串结尾          

    <!-- 自动将特殊字符转义 -->     

    ${fn:escapeXml("<html></html>") }<br /> 自动将特殊字符进行转义          

    <!-- fn:join用于将一个String数组转换一个字符串,第二个参数代表的连接符 -->     

    ${fn:join(strs,",") }<br /> 将一个String数组,以指定字符串拼接为一个新的字符串          

    ${fn:split("a,b,c,d,e",",")[2] }<br /> 将一个字符串,以指定字符拆分为一个字符数组          

    ${fn:trim("      abcd       ")

    }<br /> 去掉字符串的前后空格          

    剩下方法参照 alt+/  

  • 相关阅读:
    2020.4.10个人总结
    CG-CTF simple machine
    CG-CTF Our 16bit wars
    CG-CTF Our 16bit Games
    CG-CTF single
    CG-CTF WxyVM2
    Go Channel 详解
    Go语言TCP Socket编程
    golang mysql demo
    YouCompleteMe unavailable: requires Vim compiled with Python 2.x support
  • 原文地址:https://www.cnblogs.com/12344321hh/p/7402398.html
Copyright © 2020-2023  润新知