梦与桥java之家
posts - 37, comments - 8, trackbacks - 0, articles - 0
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2008年10月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
javascript(1)
java与模式(1)
java基础(15)
jsp程序设计(18)
好文转载
随笔档案
2008年10月 (16)
2008年8月 (21)
我的友情链接
平板电脑什么牌子好
平板电脑小八义成立于2011年9月,致力于推荐便宜又好的平板电脑,让对平板电脑有需求的用户花最少的钱,买到最合适的平板电脑。以台电、昂达、原道、蓝魔为代表国产平板系,以良好的性价比、低廉的价格、不错的性能在市场上有很好的表现。平板电脑小八义网站以台电、蓝魔等八个品牌的产品介绍、推荐、评价,辐射更多便宜又好的平板电脑,以求让用户买到物美价廉并能满足自己需要的平板产品。无论现在还是未来,平板电脑小八义都将与市场共同成长,一如既往地为用户服务,做出优秀的推荐。
搜索
最新评论
1. re: request之请求转发
…………
我以为这是代码测试的
2了
--46456
2. re: request之请求转发
456465
--46456
3. re: java基础:高级GUI组件之树
好久没来这儿了,大家还好吗/
--梦与桥
4. re: java基础:高级GUI组件之树
如果collapserow后面的参数变成其他的 象2或者3等 会有什么区别??
--解秀伟
5. re: jsp程序设计:JavaMail
你好~~有需要你的例子,麻烦寄给我下~
yemingye@tom.com
--yz
阅读排行榜
1. java基础:关于java流与文件操作(11210)
2. request之请求转发(7159)
3. jsp程序设计:jstl之JSTL标签库(上)(2674)
4. jsp程序设计:jstl之JSTL标签库(中)(2085)
5. JSP中数据库的一些操作(2015)
评论排行榜
1. jsp程序设计:JavaMail(2)
2. java基础:高级GUI组件之树(2)
3. request之请求转发(2)
4. jsp程序设计:servlet(1)
5. java基础:关于线程(1)
jsp程序设计:jstl之JSTL标签库(上)
Posted on 2008-10-26 09:44
梦与桥
阅读(2674)
评论(0)
编辑
收藏
所属分类:
jsp程序设计
1、JSTL标签库概述:
JSTL通常被认为是一种单标签库。但JSTL实际上有4个标签库。这些标签库被概括为如下:
§核心标签库—包含一些Web应用的必要的标签。核心标签库的实例包括循环,表达式赋值和基本输入输出。.
§格式化/国际化标签库—包括被用来解析数据的标签库。这种标签会解析数据,比如日期,不同的场所区域等。
§数据库标签库—包含被用来访问SQL数据库的标签。这些标签通常仅仅只创建原形(prototype)程序。这个是因为大多数程序不会直接从JSP页面中来处理数据库访问。数据库访问应该被嵌入到能够被JSP页面所访问的EJB中。
§XML标签库—包含被用来访问XML元素的标签。因为XML广泛使用于Web开发,XML的处理是JSTL的一个重要的特征。
2、安装使用JSTL1.1
JSTL1.1支持Servlet2.4且是JSP2.0以上版本的容器中,可以到
这儿下载jakarta-taglibs-standard-1.1.2.zip
,解压后将lib目录中的jstl.jar、standard.jar复制到当前Web应用的“WEB-INF/lib”中,最好同时把tld文件的目录也复制到WEB-INF中,方便日后使用。
3、核心标签库,包含通用标签、条件标签、迭代标签、URL标签
通用标签用于操作JSP页面创建存储在隐式对象中的变量;条件标签用于对JSP页面中的代码进行条件判断和处理;迭代标签用于循环遍历一个对象的集合;URL标签用于控制页面的跳转动作。
要在JSP页面中使用核心标签库,首先需要导入核心标签的URI:
<%
taglib uri
=
"
http://java.sun.com/jstl/core
"
prefix
=
"
c
"
%>
1)通用标签(输入输出):<c:set>、<c:out>、<c:remove>
§<c:set>标签主要用来将变量储存至JSP隐式对象中或JavaBean的 属性中,其语法为:
语法一:将value的值储存至范围为scope的VarName变量之中:
<
c:set
value
="value"
var
="varName"
[scope
="{page|request|session|application}"]
/>
语法二:将本体内容储存至范围为scope的VarName变量之中:
<
c:set
var
="varName"
[scope
="{page|request|session|application}]"
>
本体内容
</
c:set
>
value:要被储存的值
var:欲存入的变量名称
scope:指定变量的JSP范围
§<c:out>w标签主要用来显示数据的内容,就像<%=JSP表达式%>一样,其语法为:
语法一:没有本体(body)内容:
<
c:out
value
="value"
[escapeXml
="{true|false}"
[default
="defaultValue"
]
/>
语法二:有本体内容:
<
c:out
value
="value"
[escapeXml
="{true|false}"
/>
defaultValue
</
c:out
>
value:需要显示出来的值。
Default:如果value的值为null,则显示default的值。
escapeXml:是否转换特殊字符,如:
<
转换成<
;。
§<c:remove>标签主要用来移除变量,其语法为:
<
c:remove
var
="varname"
[scope
="{page|request|session|application}"
]
/>
var:欲移除的变量名称。
scope:var变量的JSP范围。
2)通用标签使用演示:
<%
@ page contentType
=
"
text/html;charset=gbk
"
%>
<%
@ taglib uri
=
"
http://java.sun.com/jsp/jstl/core
"
prefix
=
"
c
"
%>
<
c:set
value
="hello"
var
="sessionvar1"
scope
="session"
/>
<
c:set
var
="sessionvar2"
scope
="session"
>
world!
</
c:set
>
存储后显示:
<
br
>
<
c:out
value
="${sessionScope.sessionvar1}"
/>
<
c:out
value
="${sessionScope.sessionvar2}"
/><
br
>
<
c:remove
var
="sessionvar2"
scope
="session"
/>
删除后显示:
<
br
>
<
c:out
value
="${sessionScope.sessionvar1}"
/>
<
c:out
value
="${sessionScope.sessionvar2}"
/>
3)条件标签:<c:if>、<c:choose>、<c:when>、<c:otherwise>等。
§<c:if>标签用于有条件地执行代码,如果test属性的值为true,则会执行<c:if>标签的标签体。这是一个容器标签,其语法为:
语法一:没有标签体内容(body):
<
c:if
test
="testCondition"
var
="varName"
[scope
="{page|request|session|application}"
]
/>
语法二:有标签体内容:
<
c:if
test
="testCondition"
[var
="varName"
] [scope
="{page|request|session|application}"
]
>
</
c:if
>
test:如果表示的结果为true,则执行标签体内容,false则相反。
var:用来存储test运算后的结果,即true或false。
scope:变量的JSP范围。
§<c:choose>标签类似于java中的switch语句,它用于执行条件语句块。
<
c:choose
>
本体内容(
<
when
>
和
<
otherwise
)
</c:choose
>
§<c:when>标签的用途和switch语句中的case一样。
§<c:otherwise>标签,相当于switch语句中的default。
4)条件标签演示:
<%
@ page contentType
=
"
text/html;charset=gbk
"
%>
<%
@ taglib uri
=
"
http://java.sun.com/jsp/jstl/core
"
prefix
=
"
c
"
%>
<%
int
i
=
(
int
)(Math.random()
*
10
);
pageContext.setAttribute(
"
signalStrength
"
,
new
Integer
(i));
%>
<
c:if
test
="${pageScope.signalStrength<5}"
var
="value1"
/>
<
c:if
test
="${pageScope.signalStrength>5}"
>
<
c:set
var
="value2"
value
="true"
scope
="page"
/>
</
c:if
>
<
c:choose
>
<
c:when
test
="${pageScope.value1 }"
>
产生的随机数小于5.
</
c:when
>
<
c:when
test
="${pageScope.value2 }"
>
产生的随机数大于5.
</
c:when
>
<
c:otherwise
>
产生的随机数等于5.
</
c:otherwise
>
</
c:choose
>
5)迭代标签:<c:forEach>标签和<c:forTokens>标签等。
§<c:forEach>标签为循环控制,它可以将集合中的成员循序浏览一遍,动作方式为当条件符合时,就会重复执行<c:forEach>标签的标签体内容。
<
c:forEach
[var
="varName"
] items
="collection"
[varStatus
="varStatusName"
] [begin
="begin"
] [end
="end"
] [step
="step"
]
>
本体内容
</
c:forEach
>
语法二:迭代指定的次数:
<
c:forEach
[var
="varName"
] [varStatus
="varStatusName"
] begin
="begin"
end
="end"
[step
="step"
]
>
本体内容
</
c:forEach
>
var:用来存放当前指到的成员。
items:被迭代的集合对象(包括:Arrays、Collection、Iterator、Enumeration、Map)。
varStatus:用来存放当前指到的相关成员信息。
begin:开始的位置,若有,其值必须大于等于0.
end:结束的位置,默认值最后一个成员,若有,end必须大于begin。
step:每次迭代的间隔数,若有,必须大于等于0。
§<c:forTokens>标签用来浏览一字符串中所有的成员,其成员是由定义符号(delimiters)所分隔的。使用语法如下:
<
c:forTokens
items
="stringOfTokens"
delimes
="delimiters"
[var
="varName"
] [varStatus
="varStatusName"
] [begin
="begin"
] [end
="end"
] [step
="step"
]
>
本体内容
</
c:forTokens
>
var:用来存放现在指到的成员。
items:被迭代的字符串。
delims:定义用来分割字符串的字符。
varStatus:用来存放现在指到的相关成员信息。
begin:开始的位置,若有,必须大于等于0.
end:结束的位置,若有必须大于begin。
step:每次迭代的间隔数,若有,step必须大于等于0.
6)迭代标签演示:
<%
@ page contentType
=
"
text/html;charset=gbk
"
import
=
"
java.util.*
"
%>
<%
@ taglib uri
=
"
http://java.sun.com/jsp/jstl/core
"
prefix
=
"
c
"
%>
<%
String
[] fruits
=
{
"
苹果
"
,
"
葡萄
"
,
"
雪梨
"
,
"
白桃
"
,
"
柿子
"
};
pageContext.setAttribute(
"
fruits
"
,fruits);
Vector books
=
new
Vector();
books.add(
"
《西游记》
"
);
books.add(
"
《水浒传》
"
);
books.add(
"
《三国演义》
"
);
books.add(
"
《红楼梦》
"
);
pageContext.setAttribute(
"
books
"
,books);
String
str
=
"
太阳、星星、月亮;地球|天空
"
;
pageContext.setAttribute(
"
str
"
,str);
%>
<
h3
>
数组迭代
</
h3
>
<
c:forEach
var
="fruit"
items
="${fruits}"
>
<
c:out
value
="${fruit}"
/>
</
c:forEach
>
<
h3
>
集合类迭代
</
h3
>
<
c:forEach
var
="book"
items
="${books}"
>
<
c:out
value
="${book}"
/>
</
c:forEach
>
<
h3
>
自变量循环
</
h3
>
<
c:forEach
var
="i"
begin
="1"
end
="10"
step
="2"
>
<
c:out
value
="${i}"
/>
</
c:forEach
>
<
h3
>
字符串分隔
</
h3
>
<
c:forTokens
items
="${str}"
delims
="、;|"
var
="substr"
>
<
c:out
value
="${substr}"
/>
</
c:forTokens
>
5)URL标签,包括<c:import>、<c:redirect>和<c:url>等。
§<c:import>标签可以把其他静态或动态文件包含至本身JSP网页。它和JSP动作指令<jsp:include>最大的差别在于:<jsp:include>只能包含和自己同一个WEB应用下的文件;而<c:import>除了能包含和自己同一人WEB应用的文件外,也可以包含不同WEB应用或者是其他网站的文件。其语法如下:
语法一:
<
c:import
url
="url"
[context]
="context"
[var
="varName"
] [scope
="{page|request|session|application}"
] [charEncoding
="charEncoding"
]
>
本体内容
</
c:import
>
语法二:
<
c:import
url
="url"
[context
="context"
] varReader
="varReader"
[charEncoding
="charEncoding"
]
>
本体内容
<
c:import
>
url:被包含文件的地址。
context:在相同web容器下,其他WEB应用必须以“/”开头。
var:储存被包含的文件内容(以String类型存入)。
scope:变量的JSP作用域。
charEncoding:被包含文件内容的编码格式。
varReader:储存被包含文件的内容。
例如:
<
c:import
url
="http://www.163.com"
/>
的功能就是用
<
c:import
>
把http://www.163.com的内容加到网页中。
§<c:url>标签主要用来产生一个URL。
语法一:没有标签体内容:
<
c:url
value
="value"
[context
="context"
] [var
="varName"
] [scope
="{page|request|session|application}"
]
/>
语法二:有标签体内容,代表查询字符串参数:
value:执行的URL。
context:在相同WEB容器下,其他WEB应用必须以“/”开头。
var:储存被包含文件的内容(以String类型存入)。
scope:变量的JSP作用域。
例如:
<
c:url
value
="http://dog.xiaonei.com/pet-profile.do"
>
<
c:param
name
="portal"
value
="homeFootprint"
/>
<
c:param
name
="id"
value
="233227104"
/>
</
c:url
>
会产生一个到达我的校内的狗狗的链接地址。
§<c:redirect>标签可以将客户端的请求从一个JSP网页导向到其它文件。语法如下:
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
jsp程序设计:Web图表开发之JavaReport组件
jsp程序设计:Web图表开发之JFreeChart组件
jsp程序设计:jstl之JSTL标签库(下)
jsp程序设计:jstl之JSTL标签库(中)
jsp程序设计:jstl之JSTL标签库(上)
jsp程序设计:jstl之el
jsp程序设计:JavaMail
jsp程序设计:JDOM操作xml
jsp程序设计:DOM+SAX操作xml
jsp程序设计:分页显示数据
Powered by:
BlogJava
Copyright © 梦与桥