1. <c:out>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 :<c:out> 标签是一个最常用的标签,用于在   JSP   中显示数据。 它的作用是用来替代通过 JSP 内   置对象 out 或者 <%=%> 标签来输出对象的值。

语法 :

没有Body时的语法

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

有Body时的语法

<c:out value=”value” [escapeXml=”{true|false}”]>

这里是Body部分

</c:out>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

value

需要显示的值

Object

Y

Y

Y

用来定义需要求解的表达式。

escapeXml

是否转换特殊字符

boolean

Y

Y

N

true

用于指定在使用 <c:out> 标记输出诸如“ < ”、“ > ”、“ ’ ”、“” ”和“ & ”之类的字符(在  HTML  和  XML  中具有特殊意义)时是否应该进行转义。如果将  escapeXml  设置为 true ,则会自动的进行编码处理。

default

缺省值

Object

Y

Y

N

当求解后的表达式为 null 或者 String 为空时将打印这个缺省值。

Null和错误说明

假若value为null,会显示default的值;假若没有设定default的值,则会显示一个空的字符串。

实例 :

------------------------------------------------------------------------------------------------------------------------------------------

Example1

<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>

该示例将从Session查找名为“anyValue”的参数,并显示在页面,若没有找到则显示“no value”。

------------------------------------------------------------------------------------------------------------------------------------------

Example2

您的用户名是: <c:out value=”${user.username}” default=”guest”/>

显示用户的用户名,如为空则显示guest

<c:out value="${sessionScope.username}"/>

指定从session中获取username的值显示;

<c:out value="${username}" />

显示username的值,默认是从request(page)中取,如果request中没有名为username的对象则从session中取,session中没有则从application(servletContext)中取,如果没有取到任何值则不显示

------------------------------------------------------------------------------------------------------------------------------------------

2.  <c:set>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : <c:set>标 签用于为变量或JavaBean中的变量属性赋值的工作。这个标签用于在某个范围(page、request、session、application 等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。他类似 于<%request.setAttrbute("name","value");%>

语法 :

语法1: 没有body

将value的值存储至范围为scope的varName变量之中

<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>

语法2: 有body

将body内容存储至范围为scope的varName变量之中

<c:set value="value" [scope="{page|request|session|application}"]>

body.....

</c:set>

语法3: 将value的值存储至target对象属性中

<c:set value="value" target="target" property="propertyNmae"/>

语法4: 将body内容的数据存储至target对象属性中

<c:set target="target" property="propertyNmae">

body....

</c:set>

Ø  Null 和 错误处理:

语法3和语法4会产生异常错误,有以下两种情况:

.target 为null

.target 不是java.util.Map或JavaBean对象

假若value为null时:将由存储变量改为移除变量

.语法1: 由var和scope所定义的变量,将被移除

.若scope已指定时,则PageContext.removeAttribute(varName,scope);

.若scope未指定时,则PageContext.removeAttribute(varName);

.语法3:

.假若target为Map时,则Map.remove(property);

.假若target为JavaBean时,propertye指定的属性为null

注意: var和scope这两个属性不能使用表达式来表示,我们不能写成 scope="${ourScope}"或var="${a}"

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

value

要被存储的值

Object

true

Y

被计算的表达式

var

变量名

String

false

N

被导出的保存了value属性计算结果的范围变量的名称

scope

范围

String

true

N

page

var的JSP范围

target

目标 对象

String

true

Y

要设置属性的对象。必须是JavaBean对象或java.util.Map对象

property

指定target对象属性

Object

true

Y

要设置的target对象的属性的名称

实例 :

------------------------------------------------------------------------------------------------------------------------------------------

Example1

<c:set value="this is andy" var="oneString"/>

该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。

------------------------------------------------------------------------------------------------------------------------------------------

Example2

<c:set target="${cust.address}" property="city" value="$"/>

将对象cust.address的city属性值保存到变量city中。

------------------------------------------------------------------------------------------------------------------------------------------

Example3

设置不同的属性,并且指定它们的范围:

<c:set value="10000" var="maxUser" scope="application"/>

<c:set value="20" var="maxIdelTime" scope="session"/>

<c:set value="next.jsp" var="nextPage" scope="page"/>

------------------------------------------------------------------------------------------------------------------------------------------

Example4

<c:set var="bid" value="${param.bookId}"/>

<jsp:setProperty name="bookDB" property="bookId"   value="${bid}" />

------------------------------------------------------------------------------------------------------------------------------------------

Example5

<% Foo foo = new Foo(); pageContext.setAttribute("foo", foo); %>

<c:out value="${foo.date}"/><br> <c:set target="${foo}" property="day" value="1"/>

<c:out value="${foo.date}"/>

------------------------------------------------------------------------------------------------------------------------------------------

3.   <c:remove>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : <c:remove>标签用于删除存在于scope中的变量。 类似于 <%session.removeAttribute(“name”)%>  、

<%request.removeAttribute(“name”)%>...

语法 :

<c:remove var="varName" [scope="{page|request|session|application}"]/>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

var

变量名

String

N

N

欲移除变量的名称

scope

范围

String

N

N

page

var变量的JSP范围; 若没有指定,默认为全部查找

------------------------------------------------------------------------------------------------------------------------------------------

实例 :

Example1

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

${sessionScope.sampleValue}

------------------------------------------------------------------------------------------------------------------------------------------

Example2

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

将username变量从session范围移除。若我们不设定scope,则<c:remove>会移除所有范围名称为username

的数据。

------------------------------------------------------------------------------------------------------------------------------------------

4. <c:catch>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : <c:catch>动作用于捕获JSP元素在其体中抛出的异常,从而提供细粒度的错误控制,   此异常也可以保存为一个页面作用域变量。当错误发生<c:catch>和</c:catch>之间时,只有<c:catch>和</c:catch>之间的程序会被中止忽略,但整个网页不会被中止。 它包含一个var属性,是一个描述异常的变量,该变量可选。若没有var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了var属性,则可以利用var所定义的异常变量进行判断转发到其他页面或提示报错信息。

语法 :

<c:catch [var="var"]>

//可能发生错误的部分

JSP elements

</c:catch>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

var

变量名

String

N

N

N

用来存储错误信息的变量

实例 :

------------------------------------------------------------------------------------------------------------------------------------------

Example1

<c:catch var="importException">

<fmt:parseDate value="${param.empDate}" dateStyle="short" />

</c:catch>

<c:if test="${importException != null}">

<jsp:forward page="input.jsp">

<jsp:param name="msg" value="Invalid date format" />

</jsp:forward>

</c:if>

------------------------------------------------------------------------------------------------------------------------------------------

Example2

<c:catch var="err">

${param.sampleSingleValue[9] == 3}

</c:catch>

${err}

当“${param.sampleSingleValue[9] == 3}”表达式有异常时,可以从var属性“err”得到异常的内容,通常判断“err”是否为null来决定错误信息的提示。

------------------------------------------------------------------------------------------------------------------------------------------

5. <c:if>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : <c:if>动作仅当所指定的表达式计算为true时才计算其体。计算结果也可以保存为一个作用域Boolean变量。

语法 :

语法1:没有体

<c:if test=" booleanExpression  "

var=" var  " [scope=" page   |request|session|application"]/>

语法2:有体

<c:if test=" booleanExpression ">

JSP elements

</c:if>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

test

测试表达式

boolean

Y

Y

如果表达式的结果为true则执行body,false则相反

var

变量名

String

N

N

用来存储test运算后的结果,即true或false

scope

变量作用域

String

N

N

page

var变量的JSP范围

实例 :

<c:if test="${empty param.empDate}">

<jsp:forward page="input.jsp">

<jsp:param name="msg" value="Missing the Employment Date" />

</jsp:forward>

</c:if>

6. <c:choose>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : <c:choose>动 作用于控制嵌套<c:when>和<c:otherwise>动作的处理,它只允许第一个测试表达式计算为true 的<c:when>动作得到处理;如果所有<c:when>动作的测试表达式都计算为false,则会处理一 个<c:otherwise>动作。<c:choose>标签没有属性,可以被认为是父标 签,<c:when>、<c:otherwise>将作为其子标签来使用。

语法 :

<c:choose>

body(<when>和<otherwise>)

</c:choose>

限制:

<c:choose>的本地内容只能有:

.空白

.1或多个<c:when>

.0或多个<c:otherwise>

属性 :

实例 :

----------------------------------------------------------------------------------------------------------------------------------------

Example1

<c:choose>

<c:when test="${product.onSale}">

${product.salesPrice} On sale!

</c:when>

<c:otherwise>

${product.price}

</c:otherwise>

</c:choose>

---------------------------------------------------------------------------------------------------------------------------------------

Example2

<c:choose>

<c:when test="${condition1}">

condition1 为 true

</c:when>

<c:when test="${condition2}">

condition2 为 true

</c:when>

<c:otherwise>

condition1和conditon2都为false

</<c:otherwise >

说明:

在同一个<c:choose>中,假如所有的<c:when>的test都不为true时,则执行<c:otherwise>的本体内容。

在同一个<c:choose>中,假若有好几个<c:when>都会true时,只能有一个<c:when>成立。

</c:choose>

----------------------------------------------------------------------------------------------------------------------------------------

7. <c:when>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 :<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。

语法 :

<c:when test="testCondition">

Body content

</c:when>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

test

测试表达式

boolean

Y

Y

如果表达式的结果为true则执行body,false则相反

实例 :

8. <c:otherwise>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 :<c:otherwise>标签没有属性,它等价于“else”语句。

语法 :

<c:otherwise>

conditional block

</c:otherwise>

属性 :

实例 :

<c:choose>、<c:when>、<c:otherwise>标签 综合实例

<c:choose>

<c:when test="${paramValues.sampleValue[2] == 11}">

not 12 not 13,it is 11

</c:when>

<c:when test="${paramValues.sampleValue[2] == 12}">

not 11 not 13,it is 12

</c:when>

<c:when test="${paramValues.sampleValue[2] == 13}">

not 11 not 12,it is 13

</c:when>

<c:otherwise>

not 11 、12、13

</c:otherwise>

</c:choose>

9. <c:forEach>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : <c:forEach>动作将其体反复计算固定次数,或者针对一个集合中的每个元素分别计算一次体。当前元素(如果未指定集合则为当前索引)和迭代状态可以通过嵌套变量提供给体中的动作元素。

此 动作接受属性表中所列的类型集合。当前元素的类型即为底层集合的类型,仅有两个例外。对于一个基本类型的数组,当前元素将作为相应包装类 (Integer、Float等等)的一个实例提供。对于一个java.util.Map,当前元素则作为一个java.util.Map.Entry提 供。

语法 :

语法1:基于集合元素进行迭代

<c:forEach items="collection" [var="var"] [varStatus="varStatus"]

[begin="startIndex"] [end="stopIndex"] [step="increment"]>

JSP elements

</c:forEach>

语法2:迭代固定次数

<c:forEach [var="var"] [varStatus="varStatus"]

begin="startIndex" end="stopIndex" [step="increment"]>

JSP elements

</c:forEach>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

begin

开始位置

int

Y

Y

0

结合集合使用时的开始索引,从0计起。对于集合来说默认为0

end

结束位置

int

Y

Y

最后一个成员

结合集合使用时的结束索引(元素引要小于等于此结束索引),从0计起。默认为集合的最后一个元素。如果end小于begin,则根本不计算体集合,迭代即要针对此集合进行。

items

被迭代的集合对象

Collection,

Iterator, Enumeration,

Map,

数组

Y

Y

集合,迭代即要针对此集合进行。

step

步长

int

Y

Y

 

1

每次迭代时索引的递增值。默认为1。

var

当前项目

String

N

N

保存当前元素的嵌套变量的名字。

varStatus

循环状态

String

N

N

保存LoopTagStatus对象的嵌套变量的名字。

Null 和 错误处理

.假若items为null时,则表示为一空的集合对象

.假若begin大于或等于items时,则迭代不运算

注意:

varName的范围只存在<c:forEach>的本体中,如果超出了本题,则不能取得varName的值。如:

<c:forEach items="${atts}" var="item">

</c:forEach>

${item}</br>

${item}则不会显示item的内容。<c:forEach>除了支持数组之外,还有标准的J2SE的结合类型,例如:

ArrayList,List,LinkedList,Vector,Stack和Set等等;另外包括java.util.Map类的对象,例如:

HashMap,Hashtable,Properties,Provider和Attributes。

另外<c:forEach>还提供了varStatus属性,主要用来存放现在指到成员的相关信息。例如:我们写成

varStatus="s",那么就会把信息存放到名称为s的属性当中。varStatus属性还提供另外四个属性:index,

count,fist和last,它们个自的意义如下:

属性                   类型                                  意义

index                  number                    现在指到成员的索引

count                  number                    总共指到成员的总和

first                   boolean                    现在指到成员是否为第一个

last                    boolean                   现在指到成员是否为最后一个

实例 :

----------------------------------------------------------------------------------------------------------------------------------------

Example1

%@page contentType="text/html;charset=gb2312"%>

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

<%

String atts[] = new String[5];

atts[0]="hello";

atts[1]="this";

atts[2]="is";

atts[3]="a";

atts[4]="girl";

request.setAttritue("atts",atts);

%>

<c:forEach items="${atts}" var="item" varStatus="s">

<h2><c:out value="${item}"/>的四种属性></h2>

index: ${s.index}</br>

count: ${s.count}</br>

first: ${s.first}</br>

last: ${s.last}</br>

</c:forEach>

----------------------------------------------------------------------------------------------------------------------------------------

Example2

综合实例

< select >

< c:forEach  items = " ${model.options} "   var = "forum" >

< c:choose >

< c:when  test = " ${forum.id == model.forumId} " >

< option  value = " ${forum.id} "   elected > ${forum.name} </ option >

</ c:when >

< c:otherwise >

< option  value = " ${forum.id} " > ${forum.name} </ option >

</ c:otherwise >

</ c:choose >

</ c:forEach >

</ select >

Example3

奇偶行样式

<c:forEach items="${model.page.list}" var="observer" varStatus="loop">

< tr class="row$(loop.count%2)">

<td>迭代observer</td>

<td>迭代observer</td>

...

</tr>

</c:forEach>

Example4

分页条1

< c:set  var = "page"  value = " ${model.page} " ></ c:set >

< table  width = "800"  align = "center"  cellpadding = "0"  cellspacing = "0" >

< tr  class = "even" >

< td  height = "20"  align = "center"  colspan = "3"  valign = "top" >

< a  href = "javascript:page(1)"  class = "gr_pages" > 首页 </ a >

< c:if  test = " ${page.currentPage > 1} " >

< a  href = " javascript:page( < c:out   value = " ${page.currentPage -1 } "   /> ) "   class = "gr_pages" > 上页 </ a >

</ c:if >

< c:if  test = " ${page.currentPage < page.totalPage} " >

< a    href = " javascript:page( < c:out   value = " ${page.currentPage +1 } "   /> ) "   class = "gr_pages" > 下页 </ a >

</ c:if >

< a  href = " javascript:page( < c:out   value = " ${page.totalPage} "   default = "1"   /> ) "   class = "gr_pages" > 末页 </ a >

当前第 < c:out  value = " ${page.currentPage} "   /> / < c:out  value = " ${page.totalPage} "   /> 页

</ td >

</ tr >

</ table >

Example5

分页条2

< div  align = "center" >< span  class = "all_font12" >   < a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage=1&subareaCode= ${param.subareaCode} "   class = "gr_pages" >  首页  </ a >     < c:if

test = " ${page.currentPage > 1 } " >

< a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage= ${page.currentPage - 1} &subareaCode= ${param.subareaCode} "

class = "gr_pages" >  前页  </ a >

</ c:if >   < a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage= ${page.currentPage} &subareaCode= ${param.subareaCode} " >

< c:out  value = " ${page.currentPage} "   /></ a >

< c:if

test = " ${page.currentPage + 1 <= page.totalPage} " >

< a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage= ${page.currentPage + 1} &subareaCode= ${param.subareaCode} " >< c:out

value = " ${page.currentPage + 1} "   /></ a >

</ c:if >   < c:if  test = " ${page.currentPage + 2 <= page.totalPage} " >

< a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage= ${page.currentPage + 2} &subareaCode= ${param.subareaCode} " >< c:out

value = " ${page.currentPage + 2} "   /></ a >

</ c:if >   < c:if  test = " ${page.currentPage + 3 <= page.totalPage} " >

< a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage= ${page.currentPage + 3} &subareaCode= ${param.subareaCode} " >< c:out

value = " ${page.currentPage + 3} "   /></ a >

</ c:if >   < c:if  test = " ${page.currentPage <page.totalPage} " >

< a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage= ${page.currentPage + 1} &subareaCode= ${param.subareaCode} "

class = "gr_pages" > 后页 </ a >

</ c:if >   < a

href = " jsp/vote/voteAreaService.do?method=listVote¤tPage= ${page.totalPage} &subareaCode= ${param.subareaCode} "

class = "gr_pages" > 末页 </ a >   < a > 当前第 < c:out

value = " ${page.currentPage} "   /> / < c:out

value = " ${page.totalPage} "   /> 页 </ a ></ span ></ div >

Example6

综合实例

<%@  page  import="java.util.Map"  %>

<%@  page  import="java.util.HashMap"  %>

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

<%

Map  map  =  new  HashMap();

map.put("a",  "12345");

map.put("b",  "abcde");

out.println(map.get("a"));

request.setAttribute("map",map);

%>

<!--  完全迭代  -->

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

<c:out  value="${mymap.key}"  />

<c:out  value="${mymap.value}"  />

</c:forEach>

<!-- 根据map的key来找到特定的值 -->

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

<c:if    test="${mymap.key=='a'}">

<c:out    value="${mymap.value}"/>

</c:if>

</c:forEach>

10. <c:forTokens>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : 标签可以根据某个分隔符分隔指定字符串,相当于 java.util.StringTokenizer  类。

语法 :

<c:forTokens items="stringFoTokens" delims="delimmmmiters" [var="varName"]

[varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>

...body内容....

</c:forTokens>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

var

变量名

String

false

Y

用来存放现在指到的成员

items

被迭代的字符串

String

true

Y

被迭代的字符串

delims

分隔符

String

true

N

定义用来分割字符串的字符

varStatus

循环状态变量

String

false

N

用来存放现在指到的相关成员信息

begin

开始条件

int

true

Y

0

开始的位置

end

结束条件

int

true

Y

最后一个成员

结束的位置

step

步长

int

true

Y

1

每次迭代步长

限制:

.假若有begin属性时,begin必须大于等于0

.假若有end属性时,必须大于begin

.假若有step属性时,step必须大于等于1

Null 和 错误处理

.假如itmes为null时,则表示为有空的集合对象

.假若begin大于等于items的大小时,则迭代不运算

实例 :

<c:forToken items="A,B,C,D,E,F,G" delims="," var="item>

${item}

</c:forToken>

items属性也可以用EL,例如:

<%

String phonenumber="123-456-7899";

request.setAttribute("userPhone",phonenumber);

%>

<c:forTokens items="${userPhone}" delims="-" var="item">

${item}

</c:forTokens>

11. <c:import>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : 标签允许包含另一个 JSP  页 面到本页面来。jsp有两种内置机制可以将来自不同 URL 的内容合并到一个 JSP 页面:include 伪指令 和 <jsp:include> 操作。不过,不管是哪种机制,要包含的内容都必须属于与页面本身相同的 Web 应用程序 (或 servlet 上下文)。两个标记之间的主要区别在于: include 伪指令在页面编译期间合并被包含的内容, 而 <jsp:include> 操作却在请求处理 JSP 页面时进行。

core 库 的 <c:import>和 <jsp:include> 一样, <c:import> 也是一种请求时操作,它 的基本任务就是将其它一些 Web 资源的内容插入 JSP 页面中。 通过 url 属性指定将要导入内容的 URL,这个属性 是 <c:import> 的唯一一个必选属性。这里允许使用相对 URL,并且根据当前页面的 URL 来解析这个相对 URL。但是,如 果 url 属性的值以斜杠开始,那么它就被解释成本地 JSP 容器内的绝对 URL。如果没有为 context 属性指定值,那么就认为这样的绝 对 URL 引用当前 servlet 上下文内的资源。如果通过 context 属性显式地指定了上下文,那么就根据指定的 servlet 上下文 解析绝对(本地)URL。 但 <c:import> 操作并不仅仅限于访问本地内容。也可以将包含协议和主机名的完整 URI 指定 为 url 属性的值。实际上,协议甚至不仅局限于 HTTP。 <c:import> 的 url 属性值可以使 用 java.net.URL 类所支持的任何协议。

语法 :

语法1:资源的内容使用String对象向外暴露

<c:import url="url" [context="context"]

[var="varName"] [scope="{page|request|session|application}"] [charEncoding="charEncoding"]>

内容

</c:import>

语法2:资源的内容使用Reader对象向外暴露。

<c:import url="url" [context="context"]

varReader="varReaderName" [charEncoding="charEncoding"]>

内容

</c:import>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

url

统一资源定位器

String

true

Y

待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源

context

上下文

String

true

Y

当使用相对路径访问外部context资源时,context指定了这个资源的名字。

var

变量

String

false

N

参数的名字。

scope

范围

String

false

N

page

var参数的作用范围。

cahrEncoding

字符编码

String

true

Y

输入资源的字符编码。

varReader

资源 阅读器

String

false

N

这个参数的类型是Reader,用于读取资源。

说明

<c:import>中必须要有 url 属性,它是用来设定被包含网页的地址。它可以为绝对地址或是相对地址.

<c:import>也支持FTP协议,假设现在有一个 FTP站台,地址为 ftp.javaworld.com.tw,它里面有一个文件data.txt,那么可以写成如下方式将其内容显示出来:

<c:import url="ftp://ftp.cse.yzu.edu.tw/data.txt" />

另外,可以在<c:import>的本体内容中使用<c:param>,它的功用主要是:可以将参数传递给被包含的文件,它有两个属性name和value.如:

<c:import url="http://java.sun.com" >

<c:param name="test" value="1234" />

</c:import>

这样的做法等于是包含一个文件,并且所指定的网址会变成如下:

http://java.sun.com?test=1234

实例 :

----------------------------------------------------------------------------------------------------------------------------------------

Example1

<c:catch var="exception">

<c:import url="ftp://ftp.example.com/package/README"/>

</c:catch>

<c:if test="${not empty exception}">

Sorry, the remote content is not currently available.

</c:if>

<c:import> 操 作用来包含通过 FTP 协议访问的文档内容。此外,还使用了 <c:catch> 操作,以便在本地处理 FTP 文件传送期间可能发生的 任何错误。错误处理是这样实现的:使用 <c:catch> 的 var 属性为异常指定一个限定了作用域的变量,然后使 用 <c:if> 检查其值。如果产生了异常,那么就会对那个限定了作用域的变量进行赋值:如清单 18 中的 EL 表达式所显示的那样, 该变量的值将 不会为空。由于 FTP 文档的检索将会失败,因此会显示有关这种情况的错误消息。<c:import> 操作的最后两个(可 选的)属性是 var 和 scope 。 var 属性会导致从指定 URL 获取的内容(作为 String 值)被存储在一个限定了作用域的变量 中,而不是包含在当前 JSP 页面中。 scope 属性控制该变量的作用域,缺省情况下是页面作用域。如同我们在今后的文章中将要看到的那 样,JSTL xml 库中的标记利用了 <c:import> 这种能力,即将整个文档存储在一个限定了作用域的变量中。

还要注意的是,可以使用(可选的)嵌套的 <c:param> 标记来为正在导入的 URL 指定请求参数。与在 <c:url> 中嵌套 <c:param> 标记一样,必要时也要对参数名称和参数值进行 URL 编码。

----------------------------------------------------------------------------------------------------------------------------------------

Example2

<c:import url="/MyHtml.html" var="thisPage" />

<c:import url="/MyHtml.html" context=”/sample2” var="thisPage"/>

<c:import url="www.sample.com/MyHtml.html" var="thisPage"/>

该示例演示了三种不同的导入方法,第一种是在同一 Context 下的导入,第二种是在不同的 Context 下导入,第三种是导入任意一个 URL 。

---------------------------------------------------------------------------------------------------------------------------------------

12. <c:url>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : 主要用来产生一个URL。

语法 :

语法1:没有本体内容

<c:url value="value" [context="context"] [var="varName"]

[scope="{page|request|session|application}"] />

语法2:本体内容代表查询字符串(Query String)参数

<c:url value="value" [context="context"] [var="varName"]

[scope="{page|request|session|application}"] >

<c:param> 标签

</c:url>

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

value

 

String

true

Y

执行的URL

context

 

String

true

Y

相同Container下,其他web站台必须以“/”开头

var

 

String

false

N

储存被包含文件的内容(以String 类型存入)

scope

 

String

false

N

page

var变量的JSP范围

实例 :

<c:url value="http://www.javafan.net " >

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

</c:url>

上面执行结果将会产生一个网址为http://www.javafan.net?param=value,我们更可以搭配 HTML 的<a>使用,如下:

<a href="

<c:url value="http://www.javafan.net " >

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

</c:url>">Java爱好者</a>

如果<c:url>有 var属性时,则网址会被存到 varName中,而不会直接输出网址。

13. <c:redirect>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 : 可以将客户端的请求从一个 JSP 网页导向到其他文件。

语法 :

语法1:没有本体内容

<c:redirect url="url" [context="context"] />

语法2:本体内容代表查询字符串(Query String)参数

<c:redirect url="url" [context="context"] >

<c:param>

</c:redirect >

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

url

统一资源定位器

String

true

Y

导向的目标地址,它可以是相对或绝对地址。

context

上下文

String

true

Y

相同Container下,其他web站台必须以“/”开头

实例 :

<c:redirect> 的功能不止可以导向网页,同样它还可以传递参数给目标文件。如:

<c:redirect url="http://java.sun.com">

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

</c:redirect>

14. <c:param>

库 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : c

描述 :用于传递参数,用来为包含或重定向的页面传递参数。

语法 :

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

name

参数名

String

true

Y

传递的参数名

value

参数值

String

true

Y

传递的参数值(可选)

实例 :

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

<c:param name="userName" value=”RW” />

</c:redirect>

该示例将为重定向的“MyHtml.jsp”传递指定参数“userName=’RW’”。

jstl标签经典的更多相关文章

  1. JSTL标签出错:<c:forEach var="book" items="${requestScope.books}" varStatus="status">

    今天在运行书里的JSTL标签代码的时候出错,总结一下: 问题1.The JSP specification requires that an attribute name is preceded by ...

  2. jstl标签库基础教程及其使用代码

    概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Sta ...

  3. 十、JSTL标签库

      l JSTL标签库(重点) l 自定义标签(理解) l MVC设计模式(重点中的重点) l Java三层框架(重点中的重点) JSTL标签库 1 什么是JSTL JSTL是apache对EL表达式 ...

  4. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  5. JSTL标签库

    JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...

  6. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

  7. 简单实用JSTL标签库

    1. JSTL标签库是一个什么东东? 简单来说,有了它你就可以在类似HTML的JSP页面里面运用一些高级语法,实现迭代.条件判断.XML文档操作.国际化标签.SQL标签. 2. 如何使用 ? 参考网址 ...

  8. JSTL标签库之核心标签

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  9. jstl 标签库的使用

    JSTL 核心标签库 使用   JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.ot ...

随机推荐

  1. ASP.NET CS文件中输出JavaScript脚本

    ClientScript.RegisterStartupScript:http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscrip ...

  2. fedora audacious 不能播放音乐

    采用命令sudo dnf search audacious 可以看到 audacious-plugins-freeworld-mp3.x86_64 : MP3 playback plugin for ...

  3. CSS实现背景图尺寸不随浏览器大小而变化的两种方法

    一些网站的首页背景图尺寸不随浏览器缩放而变化,本例使用CSS 实现背景图尺寸不随浏览器缩放而变化,方法一. 把图片作为background,方法二使用img标签.喜欢的朋友可以看看   一些网站的首页 ...

  4. Cloud Foundry中warden的网络设计实现——iptable规则配置

    在Cloud Foundry v2版本号中,该平台使用warden技术来实现用户应用实例执行的资源控制与隔离. 简要的介绍下warden,就是dea_ng假设须要执行用户应用实例(本文暂不考虑ward ...

  5. Axure滚动效果实现

    下面的这个透明区域用于显示滚动效果,它本身是一个处于隐藏状态的动态面板,它里面也放了一个动态面板用于产生移动的效果 里面的动态面板起名“实际内容”,注意它的默认状态是“状态2”,状态2和状态一的内容一 ...

  6. Ajax辅助方法

    目前为止,我们已经考察了如何编写客户端JavaScript代码,以发送并接受服务器的数据.然而,在使用ASP.NET MVC时,还有另一种方法可用来执行Ajax调用,这就是Ajax辅助方法. Ajax ...

  7. php前端控制器设计1

    The primary role of a front controller in web-based applications is to encapsulate the typical reque ...

  8. linux ubuntu安装jdk

    Oracle对Jdk7与Jre7的关系的经典图解 Oracle has two products that implement Java Platform Standard Edition(Java ...

  9. 海量数据处理算法—Bloom Filter

    海量数据处理算法—Bloom Filter 1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出.它可以用于检索一个元素是否在一个集合中. Bl ...

  10. EXT.NET高效开发(三)——使用Chrome浏览器的开发人员工具

    这篇帖子老少皆宜,不分男女,不分种族,不分职业.俗话说:“磨刀不误砍柴工”.掌握一些开发工具的使用,对自己帮助是很大的(无论是用于分析问题,还是提高生产力).本篇就讲述如何利用Chrome浏览器(这里 ...