JSTL

JSTL:JavaServer Pages Standard Tag Library   主要提供给java web开发人员一个标准通用的标签函数库

一 简介

是一个以定制好的标签库,应用各种领域:基本输入输出、流程控制、循环、xml文件剖析、数据库查询以及国际化和文字格式标准化等

支持EL语法,和el结合使用

可以在http://jakarta.apache.org/builds/jakarta-taglibs/releases/standard/下载实现好的jstl,然后解压,将里边的jstl.jar/standard.jar赋值到Tomcat的WEB-INF\LIB中,就可以在网页中使用JSTL了,最好将tld文件的目录也复制到WEB-INF中,以便日后使用


二 核心标准库(Core tag library)

Core:主要有输入输出、流程控制、迭代操作、url操作

使用时,使用指令:<%@taglib  %> 并设定prfix和uri的值

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

若没有,将无法使用核心功能

1 表达式操作

<c:out>: 主要用来显示数据内容,如同<%= scripting-language%>一样 如:hello ! <c:out value =  "${username}"/>

语法:<c:out value = "value" [escapeXml = "{true|false}"] [ default= "defaultValue"] />

或者 :<c:out value = "value" [escapeXml = "{true|false}"]  />

default value

</c:out>

escapeXml:是否转换特殊字符:如< 转换为&lt;


<c:set>:主要将比昂两存储到jsp范围中或是javabean的属性中

如:<c:set value  = "value" var = "varName" [scope = "{page....}"] />

存入target中:

<c:set value  = "value" target= "varName"  property = "propertyName"/>

<c:set target = "target" property = "name" />

target为JavaBean或者java.util.Map对象


<c:remove>:主要是移除范围中的属性

如:<c:remove  var = "number" scope  = "session"/>

scope可有可无,有时,就移除相应范围的,没有时,就按顺序找,找到就移除,繁殖不做任何事


<c:catch>:主要用来处理错误的异常情况,并将错误信息存储起来

形式:

<c:catch  var = "message">

 可能错误的代码部分

</c:catch>

如果错误了,就将错误信息放在varname中,并且停止执行catch中的代码


2 流程控制

<c:if> 和一般的if没什么两样,形式如;

<c:if test = “testCondition var = "varName" [scope = "{page.....}"]/>

或者

<c:if test = “testCondition" var = "varName" [scope = "{page.....}"]>

content

</c:if>

必须有test属性,为真,执行if里的,为false则不执行


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

里边有一个或多个when  零个或多个otherwise


<c:when>

<c:otherwise>

必须为choose的子属性,when中又test属性,作用同if   choose的最后一个属性必须为otherwise(若有)

在choose中又好几个when是,只有一个when会成立,即第一个成立的


<c:forEach>:循环控制,当条件符合,重复执行里边的内容,形式:

<c:forEach var = "varName" items = "collection" varStatus = "varStatusName" begin = "begin" end = "end step = "step">

content

</c:forEach>

var 用来存放现在指定的成员

items 被迭代的几何对象

varStatus 用来存放现在知道的相关成员信息

begin 开始位置  若有,必须大于等于零

end 结束位置  必须大于等于begin

step 每次迭代的间隔数  必须大于0

若要内容显示出来,必须要有items属性   若没有,则必须有begin和end属性


<c:forTokens>:用来浏览一字符串中所有的成员,其成员是有定义符号所分隔的

相对于forEach标签,多了delims属性,他的值就是分隔符号如,  - 等等

他的items属性必须为将要被分割的字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值