本文引用于-21天学通javaweb开发,仅用于学习交流。
jsp页面要使用格式化标签,必须使用<%@ taglib %>指令,指定格式化标签。代码如下
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core %>
1.<c:set>标签:
jstl提供了能方便定义变量的标签<c:set>,能够将变量存储在JSP范围中或JavaBean属性中.其语法分为以下5种.
1) 指定变量名及变量值,不指定scope(范围)
<c:set var="username" value="value"></c:set>
2)将value的值储存到范围scope的变量中.
<c:set var-="username" value="value" scope="page | request | session | application "></c:set>
3)将本体内容的数据存储至范围为scope的变量中。
<c:set var="varname" scope="page | request | session | application ">本体内容</c:set>
4)将value值储存到target对象的属性中。
<c:set value="value" target="target" property="propertyName"></c:set>
5)将本体内容的数据存储到target对象的属性中。
<c:set target="target" property="propertyName">本体内容</c:set>
2.<c:out>标签
<c:out>用来显示数据的内容,类似与<%= %>,功能比较强大.使用<c:out>输出内容比使用Scriptlests代码简单,利于页面维护.其语法如下:
1)通过在<c:out>中的value属性指定需要显示的值。
<c:out value="value">
2)通过escapeXml属性设置是否将value中的内容按照原样输出.因为<c:out>默认将< > 、 “ 转换成< > ' " & 。如果不想转换,需指定为false
<c:out value ="value” escapeXml=“true | false”/>
3)通过 default属性来指定默认值,如果value的值为null则显示default的值.
<c:out value="value" default="No data">
4)通过本体内容来指定默认值。如果value的值为null 则显示default的值。
<c:out value="value" escapeXml="true| false">本体内容</c:out>
3.<c:remove>标签
<c:remove>操作用来移除指定范围的变量.其语法如下:
<c:remove var="number" scope="session">
var属性指定待删除变量的名称,scope属性是可选的,用来指定删除变量的范围,默认为page.
4.<c:if>标签
<c:if>标签用来执行流程控制,功能与java中的if完全相同.其有两种形式.一种没有本体内容,一种有本体内容.
1)没有本体内容的<c:if>标签格式:
<c:if test="testCondition" var=" varName" [scope="page | request | session | application"] />
其中 test 属性害死必须填写的,表示进行判断的表达式.属性var定义变量,该变量存放判断后的结果.scope表示var定义变量的存储范围.
2)有本体内容的<c:if>标签格式:
<c:if test = "testCondition" var="varName" [scope="page | request | session | application "] >本体内容</c:if>
其中 test 属性必须填写,表示进行判断的表达式,属性var定义变量,该变量存放判断后的结果.scope表示var定义变量存储的范围.
5.<c:choose> <c:when> <c:otherwise>标签
<c:if>标签只能判断一个表达式,而且无法指定如果表达式不成立的执行语句.JSTL提供了类似 if...else...的语句<c:choose>标签
<c:choose>本身只能当做<c:when>和<c:otherwise>的标签.其中可以有一个或多个<c:when>标签.有零个或多个<c:otherwise>标签.语法如下:
<c:choose>
..
<c:when test="testCondition">**</c:when>
..
<c:otherwise>**</c:otherwise>
</c:choose>
6.<c:forEach>标签
<c:forEach>标签两种语法格式.一种是遍历集合对象的成员,一种用来使语句循环执行指定的次数.
1)<c:forEach>遍历集合对象的成员,语法:
<c:forEach [var="varname"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>本体内容<c:forEach>
其中 var 用来存放现在指定到的成员. items 指被迭代的集合对象. varStatus 用来存放现在指到的有关成员的信息. begin 表示开始位置(默认 0).
end 表示结束位置. step 表示步长(默认 1)
2)<c:forEarch>指定语句执行次数,.语法:
<c:forEach [var="varname"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>本体内容</c:forEach>
注意:a) 如果指定了 begin 的属性,那么 begin 必须大于 0 ;b)如果指定了 end 属性,那么 end 属性必须大于 begin ;c)如果指定了 step ,属性大于0
<c:forEach>提供了 varStatus 属性,主要用来存放现在指到的成员的相关信息. 如: varStatus="s" 会将信息存放在名称为s的属性中.
varStatus的属性说明;
属行 | 类型 | 意义 |
index | number | 现在指到的成员的索引 |
count | number | 总共指到的成员的总数 |
first | boolean | 现在指到的成员是否为第一个成员 |
last | boolean | 现在指到的成员是否为最后一个成员 |
7.<c:forTokens>标签
<c:forTokens>用来指定分隔符分隔字符串.语法:
<c:forTokens [var="varname"] items="stringofTokens" delimes="delimiters" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
本体内容<c:forTokens>
其中 var , varStatus , begin , end , step 属性和<c:forEach>标签中的用法一样.
items 属性表示被分隔的字符串, delims 属性指定分隔符.
<c:forTokens>不仅可以仅有一个分隔符的字符串,也可以通过设定多个分隔符来分隔有多个分隔符的字符串,只需要设置多个分隔符就可以了,
8.<c:import>标签
<c:import>可以把其他静态或动态的文件包含到本身的JSP网页中,它和JSP动作指令的<jsp:include>最大的差别在于:
<jsp:include>只能包含和自己在同一 web application的文件.
而<c:import>除了能够包含和自己同一web application的文件外.也可以包含不同web application或其他网站的文件.其语法如下:
<c:import url="url" [context="context"] [var="varname"] [scope="page | request | session | application"] [charEncoding="charEncoding"]>
本体内容</c:import>
或者:
<c:import url="url" [context="context"] varReader="varReaderName" [charEncoding="charEncoding"]>
本体内容</c:import>
<c:import>属性说明
属性 | 说明 | 类型 | 是否必需 | 默认值 |
url | 被包含文件的地址 | String | 是 | 无 |
context | 同一Web容器下,其他web站点必须以"/"开头 | String | 否 | 无 |
var | 存储被包含文件的内容(以String类型存入) | String | 否 | 无 |
scope | var变量的存储范围 | String | 否 | 无 |
charEncoding | 被包含文件的编码格式 | String | 否 | 无 |
varReader | 存储被包含文件的内容(以Reader类型存入) | String | 否 | 无 |
9.<c:param>标签
<c:param>标签用来传递参数,其包含两个参数.,<c:param>包含两个属性name和value。
<c:param>属性说明
属性 | 说明 | 类型 | 是否必需 | 默认值 |
name | 参数名称 | String | 是 | 无 |
value | 参数值 | String | 否 | 本体内容 |
在<c:import>标签的本体内容中使用<c:param> 其功能主要是:可以将参数传递给被包含的文件
10.<c:url>标签
<c:url>标签用来生成URL,其语法分为两种,一种是不带参数的,一种是带参数的。语法:
1)不带参数的:
<c:url value="value" [context="context"] [var="varName"] [scope="page | request | session | application"] />
2)带参数:
<c:url value="value" [context="context"] [var="varName"] [scope="page | request | session | application"] >
<c:param>标签
</c:url>
<c:url>属性说明
属性 | 说明 | 类型 | 是否必需 | 默认值 |
value | 执行的URL | String | 是 | 无 |
context | 同一Web容器下,其他web站点必须以"/"开头 | String | 否 | 无 |
var | 存储被包含文件的内容(以String类型存入) | String | 否 | 无 |
scope | var变量的存储范围 | String | 否 | page |
11.<c:redirect>标签
使用<c:redirect>可以从一个JSP页面跳转到其他的页面上去,而且可以通过<c:param>标签传递参数。一种是不带参数,一种是带参数
1)不带参数的:
<c:redirect url="url" [context="context"] />
2)带参数:
<c:redirect uel="url" [context="context"] >
<c:param>
</c:redirect>
<c:redirect>属性说明
属性 | 说明 | 类型 | 是否必需 | 默认值 |
url | 跳转的目标地址 | String | 是 | 无 |
context | 同一Web容器下,其他web站点必须以"/"开头 | String | 否 | 无 |
如果有写错的地方,请指出。我会跟正的。谢谢。