JSP(4)----------JSTL标签

1、JSTL标签有五个不同的标签库组成。分别是核心标签库、格式标签库、SQL标签库、XML标签库和函数标签库。

引用:在JSP页面顶部使用<%@ taglib %>指令定义引用的标签库和访问的前缀。

2、使用核心标签库指令格式:<%@taglib prifix="c" uri="http://java.sun.com/jsp/jstl/core"%>

     使用格式标签库指令格式:<%@taglib prifix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

     使用SQL标签库指令格式:<%@taglib prifix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>

     使用XML标签库指令格式:<%@taglib prifix="xml" uri="http://java.sun.com/jsp/jstl/xml"%>

     使用函数库标签库指令格式:<%@taglib prifix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

3、核心标签库:主要完成JSP页面的常用功能,包括JSTL的表达式标签、URL标签、流程控制标签和循环标签;

      表达式标签:<c:out>  <c:set> <c:remove> <c:catch>

      URL标签:<c:import> <c:redirect> <c:url> <c:param>

      流程控制标签:<c:if> <c:choose> <c:when> <c:otherwise>

      循环标签:<c:forEach> <c:forTokens>

基本作用:

    <c:out>  将表达式内容输出到JSP页面,相当于<%= 表达式  %>

    <c:set>  指定范围中定义变量,或为该变量设置属性值

    <c:remove>  从JSP页面中移除指定的变量

    <c:catch>  捕获程序中出现的异常

    <c:import>  导入站内或其他网站的静态和动态的文件到WEB页面中

    <c:redirect>  将客户端发出的请求重定向到其他的URL服务端

    <c:url>  使用正确的URL重写规则,重新构造一个URL

    <c:param>  为其他的标签提供参数信息

    <c:if>  类似于java中的if语句

    <c:choose>  <c:when> <c:otherwise> 相当于java中的switch语句

    <c:forEach> 循环条件,遍历数组和集合类的所有或部分数据

    <c:forTokens> 迭代字符串中由分割符分割的成员

4、表达式标签

    4.1)<c:out>输出标签:用于表达式值的输出到jsp页面中,该标签类似于jsp的表达式<%= 表达式 %>或者EL表达式${expression}。有两种格式:一种没有标签体,一种有标签体,但是输出结果相同。

  语法1(没有标签体):<c:out value="expression"[escapeXml="true|false"] [ default="defaultValue" ] />

  语法2(含有标签体):<c:out value="expression"[escapeXml="true|false" ]> defaultValue </c:out>

                                      value:指定将要输出的变量或表达式。

                                      escapeXml:可选属性,指定是否转换特殊的字符。默认是true,如“<”  转换为  “ &lt ”

                                      default:可选属性,用于指定当value属性值等于nul时,将要显示的默认值。如果没有指定该属性,且value值为null,该标签输出空字符。

<c:out value="水平线标签<hr>"escapeXml="true" />    编译为:水平线标签&lt;hr&gt;
输出结果:水平线<hr>

<c:out value="水平线标签<hr>"escapeXml="false" />   编译为:水平线标签<hr>
输出结果:水平线

    4.2)<c:set>向指定的作用域存入命名属性  

  语法:<c:set scope="指定存入作用域的名字" value="值"  var="命名属性名" 

<c:set var="name" value="张三" scope="session"></c:set>

    4.3)<c:remove>从指定的作用域中移除命名属性

  语法:<c:remove var="值" scope="指定作用域的 ">

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

    4.4)<c:catch>捕获异常标签

  语法:<c:catch var="存储异常信息的变量">可能存在异常的代码</c:catch>

5、URL相关的标签

    5.1)<c:import>可以导入一个站内或其他网站的静态和动态文件到web页面中。

  语法:<c:import url="指定目标包含资源的路径">,如果url为空、null或无效,则抛出异常。

<c:import url="xxxx.jsp" charEncoding="UTF-8">

    5.2)<c:redirect>一个做重定向跳转的标签

  语法:<c:redirect url="重定向的路径名">

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

    5.3)<c:url>生成一个URL路径的字符串

  语法:<c:url value="url相对路径">

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

    5.4)<c:param>传递参数的标签

  语法:<c:param name="paramName" value="paramValue">如果name为空,标签不起作用,如果value参数为null,则为空值处理

<c:reidrect>配合<c:param>

<c:reidrect url="main.jsp">
    <c:param name="user" value="sqc"/>
</c:reidrect>
取值${param.user}

6、流程控制标签

   6.1)<c:if>类似于java中的if语句类型,不过这里没有else标签

  语法:<c:if test="条件" var="name"[scope="page/request/session/application"] />

   6.2)<c:choose>类似于java中的when case

    <c:choose>只能作为<c:when>、<c:otherwise>标签的父标签

  语法:<c:choose>

              <c:when>标签和<c:otherwise>标签组成 

         </c:choose>

   6.3)<c:when>

  语法:<c:when test="条件">标签体</c:when>

    注意:必须放在<c:otherwise>之前

   6.4)<c:otherwise> 

  语法:<c:otherwise test="条件">标签体</c:otherwise>

7、循环标签

   7.1)<c:forEach>循环标签:遍历集合和数组  

  语法1:<c:forEach items="data"[var="name"]["begin="start"][end="finish"][step="step"][varStatus="statusName"] >

                标签体

             </forEach>

    items:与后台传递的集合、数组等名称一致,用EL表达式

  语法2:<c:forEach begin="start" end="finish" [var="name"][varStatus="statusName"][step="step"]>

                标签体

              </c:forEach>

     var:存储items指定的对象的成员

    begin:指定循环起始位置

    end:用于指定循环终止的位置

    step:用于指定循环步长

    varStatus:用于指定循环的状态的变量,index(当前循环的索引值,从0开始),count(当前循环的索引值,从1开                                  始),first(是否为第一次循环,last(是否为最后一次循环)

注意:语法2通常用于分页;

输出10以内的全部基数
<c:forEach var="i" begin="1" end="10" step="2">
   ${i}  
</c:forEach>

   7.2)<c:forTokens>迭代标签:用于指定的分隔符将一个字符串分割开,根据分割的数量确定次数

  语法:<c:forTokens items="String" delims="char"[var="name"][begin='start'][end="end"][step="step"][varStatusName="varStatusName"]>标签体<c:forTokens>

         items:用于迭代的String对象,该字符串通常由指定的分隔符分隔

        delims:用于指定分割字符串的分隔符,可以同时有多个分隔符

原字符串:程序开发宝典、典型模块大全;javaweb:一门优秀的web技术、操作简单、方便,被广泛应用;
<c:forTokens items="EL获取字符串" delims=": 、 ;" var="item">
    ${item}<br/>
</c:forTokens>

        






猜你喜欢

转载自blog.csdn.net/qq_36115651/article/details/80160188
今日推荐