夢與橋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流與文件操作(11217)
2.?request之請求轉發(7163)
3.?jsp程序設計:jstl之JSTL標簽庫(上)(2679)
4.?jsp程序設計:jstl之JSTL標簽庫(中)(2092)
5.?JSP中數據庫的一些操作(2017)
評論排行榜
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 23:37
夢與橋
閱讀(1681)
評論(0)
編輯
收藏
所屬分類:
jsp程序設計
1、簡單標簽
實現自定義標簽的三個步驟:
1)編寫標簽處理程序(java類)。
2)編寫標簽庫描述符(提供有關標簽和庫文件的元信息的XML文件)。
3)JSP實現(包含自定義標簽的JSP文件)。
2、開發簡單的自定義標簽
1)標簽處理程序wz.java的源代碼如下:
package
www.zzz;
import
javax.servlet.jsp.tagext.
*
;
import
java.io.
*
;
import
java.util.
*
;
import
javax.servlet.jsp.
*
;
public
class
wz
extends
SimpleTagSupport
{
private
String name;
private
int
age;
public
void
setName(String name)
{
this
.name
=
name;
}
public
void
setAge(
int
age)
{
this
.age
=
age;
}
public
void
doTag()
throws
JspException, IOException
{
JspWriter out
=
this
.getJspContext().getOut();
out.println(
"
<h3>
"
+
name
+
"
的個人信息:</h3><br>
"
);
getJspContext().setAttribute(
"
name
"
,
"
姓名:
"
+
name
+
"
<br>
"
);
getJspContext().setAttribute(
"
age
"
,
"
年齡:
"
+
age
+
"
<br>
"
);
getJspBody().invoke(
null
);
}
}
2)標簽描述文件wz.tld的內容如下:
<?xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<taglib xmlns
=
"
http://java.sun.com/xml/ns/j2ee
"
xmlns:xsi
=
"
http://www.w3.org/2001/XMLSchema-instance
"
xsi:schemaLocation
=
"
http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
"
version
=
"
2.0
"
>
<description>
A tag library exercising SimpleTag handlers.
</description>
<tlib-version>
1.0
</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>/SimpleTagLibrary</uri>
<tag>
<description>Outputs Hello
,
World</description>
<name>wz</name>
<tag-class>www.zzz.wz</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>age</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
3)引入標簽的JSP頁面的源碼:
<%
@ page contentType
=
"
text/html; charset=GBK
"
%>
<%
@ taglib uri
=
"
/WEB-INF/tld/wz.tld
"
prefix
=
"
mytag
"
%>
<
html
>
<
body
>
<
mytag:wz
name
="張三"
age
="15"
>
${name}
${age}
</
mytag:wz
>
</
body
>
</
html
>
注:編譯后的類文件放到WEB-INF/classes目錄下,描述文件tld放到WEB-INF/tld目錄下(似乎哪個目錄下都行,也可直接放到WEB-INF目錄下,因為有uri引用吧),tag文件保存到web應用的WEB-INF/tags目錄下。
4)對wz.tld文件的解釋:
tlib-version:是必須的元素,指定標記庫函數的版本號。
short-name:為標記庫指定一個縮略名稱,用它可以作為標記庫的默認名字空間。
info:用來描述標記的文檔信息,默認值為空。
uri:用來指定連接到標記的附加源文件,即tld的公共可用副本。
tag:是標記描述文件中最重要的一個元素,有6個子元素:name、tagclass、teiclass、bodycontent、info、attribute。
name:用戶指定的標記名稱。
tag-class:指定標記處理類,寫全名,即帶包的類。
bodycontent:說明標記體的類型,分為4種:empty、jsp、scriptless、tagdependent。
empty:表示沒有標記體。
jsp:表示標記體可以為jsp代碼。
scriptless:表示標記中不能用jsp腳本。
tagdependent:表示標簽中的內容交給標記處理程序去進行處理。
info:記錄標記的描述信息。
attribute:用來指定零個或者多個標記屬性,有三個子元素:name、required、rtextprvalue。
name:必須設定,用來表示大小寫敏感屬性名稱。
required:必須設定,標示屬性是否一定要存在,默認為flase,即在標記處理程序中不會自動調用屬性
的setAttribue方法。
rtextprvalue:用來說明屬性是否可以是動態生成的,但設定為true時,屬性即可以是一個常量值,也可
以由表達式生成。
3、標簽文件,是JSP2.0新增的功能,目的是讓JSP網頁開發人員能夠直接使用JSP語法來制作標簽,而無須了解java語言。其擴展名都是.tag或.tagx。假如Tag File包含其他完整的或片段的Tag File,JSP2.0規范建議擴展名為.tagf。
1)Tag File的7個隱式對象:request、response、out、jspContext、session、application、config。
2)Tag File的指令:
tag 如同JSP網頁的page指令。
taglib 如同JSP網頁的taglib指令。
include 如同JSP網頁的include指令。
attribute 用來設定自定義標簽的屬性。
variable 用來設TagFile的變量,此變量可回傳至JSP網頁。
3)新增的幾個動作:
<jsp:attribute>標簽:用來指定自定義標簽屬性塊,必要時可以作為代碼段輸出。
<jsp:doBody>標簽:告訴容器去處理body,并且將處理結果添加到response中,可以有選擇地使用"var"屬性,捕獲處理的結果,并在下一步進行處理。
<jsp:invoke>標簽:對作為屬性傳遞的特定參數進行操作。
4)開發并使用一個日期標簽:datetag.tag與datetag.jsp
datetag.tag的代碼如下:
<%
@tag pageEncoding
=
"
GBK
"
%>
<%
@tag import
=
"
java.util.*,java.text.*
"
%>
<%
@variable name
-
given
=
"
fulldate
"
scope
=
"
AT_BEGIN
"
%>
<%
DateFormat fullformate
=
DateFormat.getDateInstance(DateFormat.FULL);
Date
now
=
new
Date
();
jspContext.setAttribute(
"
fulldate
"
, fullformate.format(
now
));
%>
<
jsp:doBody
/>
datetag.jsp的代碼如下:
<%
@ page contentType
=
"
text/html; charset=GBK
"
%>
<%
@ taglib prefix
=
"
mytag
"
tagdir
=
"
/WEB-INF/tags/
"
%>
<%
@ taglib uri
=
"
http://java.sun.com/jsp/jstl/core
"
prefix
=
"
c
"
%>
<
html
>
<
body
>
<
h1
>
日期tag標簽文件演示
</
h1
>
<
mytag:datetag
>
標簽體的輸出:${fulldate}
<
br
>
</
mytag:datetag
>
頁面的輸出:${fulldate}
</
body
>
</
html
>
5)開發并使用一個求和標簽:sumtag.tag與sumtag.jsp
sumtag.tag的代碼如下:
<%
@tag pageEncoding
=
"
GBK
"
%>
<%
@attribute name
=
"
items
"
required
=
"
true
"
rtexprvalue
=
"
true
"
%>
<%
@attribute name
=
"
great
"
fragment
=
"
true
"
%>
<%
@attribute name
=
"
less
"
fragment
=
"
true
"
%>
<%
@taglib prefix
=
"
c
"
uri
=
"
http://java.sun.com/jsp/jstl/core
"
%>
<%
@variable name
-
given
=
"
sum
"
variable
-
class
=
"
java.lang.Object
"
%>
<
c:if
test
="${not empty items}"
>
<
c:forEach
items
="${items}"
var
="item"
>
<
c:set
var
="sum"
value
="${item+sum}"
/>
</
c:forEach
>
<
c:if
test
="${sum>=1000}"
>
<
jsp:invoke
fragment
="great"
/>
</
c:if
>
<
c:if
test
="${sum<1000}"
>
<
jsp:invoke
fragment
="less"
/>
</
c:if
>
</
c:if
>
sumtag.jsp的代碼如下:
<%
@ page contentType
=
"
text/html; charset=GBK
"
%>
<%
@ taglib prefix
=
"
mytag
"
tagdir
=
"
/WEB-INF/tags/
"
%>
<%
@ taglib uri
=
"
http://java.sun.com/jsp/jstl/core
"
prefix
=
"
c
"
%>
<
html
>
<
body
>
<
mytag:sumtag
items
="111,222,333"
>
<
jsp:attribute
name
="great"
>
<
font
color
="red"
>
SUM: ${sum}
</
font
>
</
jsp:attribute
>
<
jsp:attribute
name
="less"
>
<
font
color
="blue"
>
SUM: ${sum}
</
font
>
</
jsp:attribute
>
</
mytag:sumtag
>
</
body
>
</
html
>
注:tag文件保存到web應用的WEB-INF/tags目錄下。
4、JSP標記與JavaBean有何區別?
答:JavaBean存在先天的不足,它只是可復用組件,獨立于運行環境而包裝了一些數據和業務邏輯功能,無法獲得運行環境信息,無法與JSP頁面進行更加深層次的交互。自定義標記機制解決了它的這種的缺陷,標記庫的處理類不但具有JavaBean的功能,而且可以把JSP的環境住處傳到類中間,不但能得到JSP傳遞過來的屬性,還能與JSP共用頁面環境,JSP頁面中可以通過session、page與標記處理程序進行數據通信,這一點是javaBean所不能實現的。
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
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 © 夢與橋
主站蜘蛛池模板:
亚洲午夜福利AV一区二区无码
|
亚洲视频在线观看免费
|
日韩免费观看视频
|
久久久久久亚洲精品影院
|
成年在线观看免费人视频草莓
|
亚洲AV无码乱码麻豆精品国产
|
大学生美女毛片免费视频
|
亚洲第一街区偷拍街拍
|
四虎亚洲国产成人久久精品
|
日韩在线视频播放免费视频完整版
|
亚洲精品视频在线观看免费
|
亚洲最大的视频网站
|
高清国语自产拍免费视频国产
|
久久亚洲AV成人出白浆无码国产
|
永久免费av无码网站韩国毛片
|
尤物视频在线免费观看
|
亚洲欧洲国产视频
|
亚洲国产成人精品91久久久
|
182tv免费观看在线视频
|
日韩精品免费一线在线观看
|
思思久久99热免费精品6
|
亚洲成a人片在线观看中文app
|
亚洲AV无码专区日韩
|
67194熟妇在线永久免费观看
|
国产精品1024永久免费视频
|
j8又粗又长又硬又爽免费视频
|
亚洲中文无码a∨在线观看
|
亚洲午夜精品久久久久久浪潮
|
日本免费无遮挡吸乳视频电影
|
国产在线播放线91免费
|
亚洲精品国产av成拍色拍
|
久久精品国产精品亚洲蜜月
|
免费人成在线观看视频播放
|
4虎永免费最新永久免费地址
|
a级片在线免费看
|
老司机福利在线免费观看
|
亚洲精品天堂在线观看
|
亚洲第一区香蕉_国产a
|
国产gv天堂亚洲国产gv刚刚碰
|
日韩中文无码有码免费视频
|
又黄又爽又成人免费视频
|