JSTL标签库

一,核心标签库

指令格式:

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

    用于将表达式的值输出到JSP页面中,有两种语法格式:

    1.没有标签体:

   <c:out value="expression" [escapeXml="true|false"] [default="defaultValue] \>

   2. 有标签体:

    <c:out value="expression" [escapeXml="true|false"] 
           defaultValue] 
      </c:out>
  •  value:指定将要输出的变量和表达式。该属性的值类似于Object,可以使用EL
  • escapeXML:可选属性,用于指定是否转换特殊字符串。属性值为true或false。默认值是true,表示转换。

                                        被转换的字符

字符  字符实体代码字符字符实体代码
   <           &lt     >          &gt
    '           &#039    "         &#034
    &         &amp  

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

<c:set>变量设置标签

用于在指定范围(page,request,session或application)中定义保存某个值的变量,或为指定的对象设置属性值。

四种语法格式:

1.在scope指定的范围内将变量值存储到变量中

<c:set var="name" value="value" [scope="范围"] \>

2.在scope指定的范围内将标签体存储到变量中。

<c:set var="name"  [scope="page|request|session|application"] 
           标签体
<\c:set>

3.将变量值存储在target属性指定的目标对象的popName属性中

<c:set value="vlaue" target="object" property="propName" />

4.将标签体存储到target属性指定的目标对象的popName属性中

<c:set  target="object" property="propName"
           标签体 
</c:set>

  • var:用于指定变量名,通过这个变量名,可以通过EL指定为<c:out>的value属性的值
  • value:用于指定变量值
  • scope:用于指定变量的作用域,默认page。
  • target:用于指定存储变量值或标签体的目标对象。可以JavaBean或Map集合对象(使用EL表达式或一个脚本表达式指定真正对象)
  • property:用于指定目标对象存储数据的属性名

<c:remove>变量移除标签

    用于移除指定的JSP范围内的变量。语法格式如下:

 <c:remove var="name" [scope="范围"]/>

  •  var:用于指定要移除的变量名
  •  scope:用于指定变量的有效范围,可选值有:page,request,session,application。默认page。如果在标签中没有指定变量的有效范围,会在四个范围内进行寻找并移除。如果没有指定范围,在不同范围中有两个变量名相同的变量,都会被移除。
  • 当移除的变量没有存在时,并不会抛出异常。

<c:catch>捕获异常标签

  用于捕获程序中出现的异常。可以将异常信息保存到指定的变量中

<c:catch [var="expression"]
....   //可能存在异常的代码
</c:catch>

  •  var:可选属性,用于指定存储异常信息的变量。如果不需要保存异常信息,可以省略该属性。(var属性值只有在<c:catch>标签的后面才有效,在标签体中无法使用有关异常的任何信息)
  • 注意:<c:catch>标签可以获取页面中由其他的JSP脚本标示和动作标示所产生的的运行时异常信息

URL相关标签

<c:import>导入标签

  可以导入站内或其他网站的静态和动态文件到Web页面中,与<jsp:inclue>指令类似。不同是<jsp:inclue>只能导入站内资源。两种语法格式:

  1.

<c:import url="url" [context="context"] [var="name'] [scope="范围"] [charEncoding="encoding"]>
          [标签体]
      </c:import] 

2.

<c:import url="url" varReader="name" [context="context"]  [charEncoding="encoding"]>
    [标签体]
 </c:import]

  • url:用于指定被导入的文件资源的URL地址
  • context:上下文路径,用于访问同一个服务器的其他Web应用,其值必须以"/"开头,如果指定该属性,url属性也必须以“/”开头
  • var:用于指定变量的名称。用以String类型存储获取的资源
  • scope:用于指定变量的存储范围,默认page
  • varReader:用于指定一个变量名,用于以Reader类型存储被包含文件内容(导出的Reader对象只能在<c:import>标记的开始和结束标签之间使用)
  • charEncoding:用于指定的被导入文件的编码格式
  • 标签体:可选,如果需要为导入的文件传递参数,可以在标签体的位置使用<c:param>标签设置参数

<c:url>动态生成URL标签

   用于生成一个URL路径的字符串,有两种语法格式:

1.

<c:url value="url" [var="name"] [scope="范围"] [context="context”] />

将输出产生的URL字符串的信息,如果指定了var和scope属性,相应的URL信息就不再输出,而是存储到变量后使用

2.

 <c:url value="url" var="name  [scope="范围"] [context="context”]>
     <c:param/>
    </c:url>

  • value:用于指定将要处理的URL地址,可以使用EL
  • context:上下文路径,用于访问同一个服务器的其他Web工程,其值必须以“/”开头,如果指定了该属性,那么url属性值也必须以“/”开头
  • var:用于指定变量的名称,该变量用于保存新生成的URL字符串
  • scope:用于指定变量的存在范围
  • 注意:在应用<c:url>标签生成新的URL地址时,空格符将被转换成加号

<c:redirect>重定向标签

   可以将客户端发出的request请求重定向到其他的URL服务器,由其他程序处理客户的请求。在这期间可以对request请求中的属性进行修改或添加,然后把所有属性传递到目标路径,语法有两种:

1.<c:redriect url="url" [context="/context] /> 
  不添加传递到目标路径的参数信息

2.

<c:redirect url="url" [context="/context] >
     <c:param/> //可以有多个
  </c:redirect>

  • url:必选属性,用于指定待定向资源的URL,可以使用EL
  • context:用于在使用相对路径访问外部context资源,指定资源的名字

<c:param>传递参数标签

 只用于为其他标签提供参数信息。

<c:param name=“paramName” value="paramValue">

  •   name:用于指定参数名,可以引用EL.,如果参数名为null或是空,该标签将不起任何作用
  •   value:用于指定参数值,可以引用EL,如果参数值为null,该标签作为空值处理、

流程控制标签:

<c:if>条件判断标签

语法两种:

1.

<c:if test="condition var="name" scope="page|request|session|application>

   将条件的判断结果存储到var属性指定的变量中,这个变量存在于scope指定的范围内

2.

<c:if test=”condition” var="name" [scope=“范围”>
   标签体
 </c:if>

 将条件的判断结果存储到var属性指定的变量中,这个变量存在于scope指定的范围内.根据条件的判断去执行标签体

  •    test:必选属性,用于指定条件表达式,可以使用EL
  •    var:可选属性,用于指定变量名,用于保存test属性判断结果。如果变量不存在,就创建他
  •    scope:用于指定变量的有效范围,默认值page

<c:choose>条件选择标签

可以根据不同的条件完成指定的业务逻辑,没有符合的条件就执行默认条件的业务逻辑。只能作为<c:when>和<c:otherwise>标签的父标签。语法格式:

<c:choose>
    标签体
</c:choose>

  • 注意:可以包含多个<c:when>标签来处理不同条件的业务逻辑。只能有一个<c:otherwise>处理默认条件的业务逻辑

<c:when>条件测试标签

  根据不同的条件执行相应的业务逻辑

<c:when test="condition>
  标签体
</c:when>

  •   test:条件表达式,必须定义的属性。可以引用EL表达式
  • 注意:在<c:choose>中必须有一个<c:when>标签(这个标签 必须在<c:otherwise>之前)<c:otherwise>是可选的

<c:otherwise>其他条件标签

  定义<c:choose> 标签中的默认条件处理逻辑

<c:otherwise test="condition>
   标签体
</c:otherwise>

循环标签:

<c:forEach>循环标签

   根据循环条件,遍历数组和集合类中的所有或部分数据。两种语法格式:

1.集合成员迭代 items为必选属性,用EL

<c:forEach items="data" [var="name"] [begin="start"] [end="finish"] [step="step"] [varstatus="statusName']>
   标签体
  </c:forEach>

2.数字索引迭代

<c:forEach  [var="name"] begin="start" end="finish" [step="step"] [varstatus="statusName']>
   标签体
  </c:forEach>

  • items:用于指定被循环遍历的对象,多为数组个集合类。属性值可以是数组,字符串,枚举类型,集合类。EL
  • var:用于指定循环体的变量名。用于存储items指定的对象的成员
  • begin:指定循环的开始位置。没有指定,从第一个开始。EL
  • end:指定循环的终止位置。没有指定,最后一个结束。EL
  • step:指定循环的步长
  • varStatus:指定循环的状态变量(有四个状态属性:index,count,first,last)

<c:forTokens>迭代标签

可以用指定的分隔符将一个字符串分隔开。根据分割的数量确定循环的次数

<c:forTokens items="String" delims="char" [var="name"]  [begin="start"] [end="finish"] [step="step"] [varstatus="statusName']>
 标签体
</c:forTokens>

  • items:指定迭代的String对象。
  • delims:指定分割字符串的字符。可以有多个
  • var:指定变量名,保存了分割后的字符串
  • begin:迭代开始的地方。索引值从0开始
  • end:迭代结束的地方
  • step:迭代的步长。默认1
  • varStatus:指定迭代的状态变量(同<c:forEach>标签一样)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值