Ph n này trình bày cách th c mà tác gi c a trang web s d ng ầ ứ ả ủ ử ụ tag library
trong JSP và gi i thi u các lo i ớ ệ ạ tag khác nhau. Các ví d trong ph n này s đ cụ ầ ẽ ượ
đ nh ngh a trong ph n III.ị ĩ ầ
II.1. Khai báo các tag library
II.1. Khai báo các tag library
Trang JSP s s d ng các ẽ ử ụ tag đ c đ nh ngh a trong m t ượ ị ĩ ộ tag library
b ng cách đ a vào ằ ư taglib directive trong trang tr c b t k ướ ấ ỳ custom tag đ cượ
s d ng:ử ụ
Thu c tính ộ uri tham chi u t i URI đó là đ nh danh duy nh t cho ế ớ ị ấ tag library. URI có th là URI t ng đ i hay tuy t đ i. N u URI t ng đ i thì nóể ươ ố ệ ố ế ươ ố
ph i đ c ánh x đ n m t URI tuy t đ i trong ả ượ ạ ế ộ ệ ố taglib element c a b mô tủ ộ ả
tri n khai ng d ng Web, t p tin c u hình này cùng v i ng d ng Web đ cể ứ ụ ậ ấ ớ ứ ụ ượ
phát tri n theo b n đ t t Java Servlet và JavaServer Pages.ể ả ặ ả
Thu c tính ộ prefix đ nh ngh a m t ti p đ u ng đ phân bi t v i các ị ĩ ộ ế ầ ữ ể ệ ớ tag library khác, do đó thu c tính này gi i quy t đ c v n đ xung đ t v các tên ộ ả ế ượ ấ ề ộ ề tag.
II.2. Các lo i tagạ II.2. Các lo i tagạ
Nh ng customữ action đ c di n đ t b ng cú pháp XML. Chúng có startượ ễ ạ ằ
tag, n i dung và end tag:ộ
<tlt:tag>
body
</tlt:tag>
M t tag mà không có n i dung đ c bi u di n nh sau:ộ ộ ượ ể ễ ư
<tlt:tag />
II.2.1. Các tag đơn gi nả II.2.1. Các tag đơn gi nả
M t tag đ n gi n sau tri u g i m t ộ ơ ả ệ ọ ộ action và xu t ra l i chào “Helloấ ờ
World.”.
<tlt:helloWorld />
II.2.2. Các tag có thu c tínhộ II.2.2. Các tag có thu c tínhộ
M t start tag c a ộ ủ custom action có th ch a các thu c tính d i d ngể ứ ộ ướ ạ
attr = ‘value’. Các thu c tính này tu bi n các tham s dùng trong các ph ngộ ỳ ế ố ươ
th c c a m t l p java.ứ ủ ộ ớ
Các thu c tính có th đ c gán m t hay nhi u tham s trong m t đ iộ ể ượ ộ ề ố ộ ố
t ng request ho c t m t h ng chu i. Ch có các ki u thu c tính trongượ ặ ừ ộ ằ ổ ỉ ể ộ
b ng sau m i có th đ c gán t các giá tr tham s c a request và c a các h ngả ớ ể ượ ừ ị ố ủ ủ ằ
chu iổ
Ki u thu c tínhể ộ
Ki u thu c tínhể ộ PhPhươương th c valueOf chuy n chu ing th c valueOf chuy n chu iứứ ểể ổổ
boolean or Boolean java.lang.Boolean.valueOf(String) byte or Byte java.lang.Byte.valueOf(String) char or Character java.lang.Character.valueOf(String) double or Double java.lang.Double.valueOf(String) int or Integer java.lang.Integer.valueOf(String) float or Float java.lang.Float.valueOf(String) long or Long java.lang.Long.valueOf(String)
Giá tr thu c tính có d ng <%= expression %> đ c tính vào th i gian yêuị ộ ạ ượ ờ
c u. Giá tr c a bi u th c tu thu c vào ki u thu c tính đ c xác đ nh trong đ iầ ị ủ ể ứ ỳ ộ ể ộ ượ ị ố
t ng cài đ t tag còn g i là ượ ặ ọ tag handler (tag handler trong ph n đ nh ngh a cácầ ị ĩ
tag).
<tlt:helloWorld name=’Phan Van Dau’/>
II.2.3. Các tag có n i dungộ II.2.3. Các tag có n i dungộ
Tag có th bao hàm các ể custom tag, scripting element, HTML, và n iộ
dung n m gi a start tag và end tag. Trong ví d sau s đ a ra thông tin “l iằ ữ ụ ẽ ư ờ
<tlt:helloWorld>
Phan Van Dau
</tlt:helloWorld>
i.
i. Các tag nh ngh a các bi n k ch b nCác tag nh ngh a các bi n k ch b nđịđị ĩĩ ếế ịị ảả
M t ộ tag có th đ nh ngh a ra m t bi n mà bi n này đ c dùng trong cùngể ị ĩ ộ ế ế ượ
m t trang. Ví d sau đây minh ho cách th c đ nh ngh a và s d ng m t bi nộ ụ ạ ứ ị ĩ ử ụ ộ ế
ch a m t đ i t ng đ c tr v .ứ ộ ố ượ ượ ả ề
ii.
ii. K t h p các tagK t h p các tagế ợế ợ
Các tag k t h p v i nhau b ng các ph ng pháp c a các đ i t ng dùngế ợ ớ ằ ươ ủ ố ượ
chung. Trong ví d sau, tag1 t o m t đ i t ng có tên là obj1, sau đó đ c sụ ạ ộ ố ượ ượ ử
d ng l i b i tag2. Qui t c này đ c khuy n khích b i b ng đ t t JSP, m tụ ạ ở ắ ượ ế ở ả ặ ả ộ
tag t o ra m t tên v i thu c tính ạ ộ ớ ộ id và tag th hai có thu c tính ứ ộ name đ dùngể
l i tên này.ạ
<tlt:tag1 id=’obj1’ attr2=’value’/>
<tlt:tag2 name=’obj1’/>
Trong ví d k t ti p, dùng các ụ ế ế tag l ng nhau t ng t nh trong XML vàồ ươ ự ư
HTML.
<tlt:outerTag>
<tlt:innerTag />
iii.
iii. ĐịĐịnh ngh a các tagnh ngh a các tagĩĩ
s d ng các
Để ử ụ custom tag trong trang JSP, chúng ta c n ph i đ nh ngh aầ ả ị ĩ
ba thành ph n riêng bi t:ầ ệ
♦ Phát tri n ể tag handler và các l p tr giúp cho ớ ợ tag.
♦ Khai báo tag trong b mô t th vi n tag (tag library descriptor)ộ ả ư ệ
d i d ng t p tin XML.ướ ạ ậ
♦ T o t p tin JSP có s d ng ạ ậ ử ụ custom tag.
Ph n này mô t các thu c tính c a ầ ả ộ ủ tag handler và các b mô t th vi nộ ả ư ệ
tag, c ng trình bày cách phát tri n ũ ể tag handler và các element c a b mô t thủ ộ ả ư
vi n đ i v i m i lo i ệ ố ớ ỗ ạ tag đ c gi i thi u trong ph n tr c.ượ ớ ệ ầ ướ
II.3. Tag handler
II.3. Tag handler
Tag handler là m t đ i t ng đ c g i lên b i ộ ố ượ ượ ọ ở JSP container đ đ nh trể ị ị
cho custom tag trong xu t quá trình th c thi c a trang JSP có tham chi u t iố ự ủ ế ớ
m t ộ tag nào đó. Các ph ng th c c a ươ ứ ủ tag handler đ c g i b i l p cài đ t trangượ ọ ở ớ ặ
JSP vào các th i đi m khác nhau trong xu t quá trình đ nh tr cho ờ ể ố ị ị tag.
Khi g p start tag c a ặ ủ custom tag thì l p cài đ t trang JSP g i cácớ ặ ọ
ph ng th c đ kh i t o các giá tr thích h p và sau đó tri u g i ph ng th cươ ứ ể ở ạ ị ợ ệ ọ ươ ứ
doStartTag. Khi g p end tag c a ặ ủ custom tag thì ph ng th c ươ ứ doEndtag
đ c g i.ượ ọ
Tu theo m c đích c a t ng custom tag mà chúng ta x lý các ph ngỳ ụ ủ ừ ử ươ
th c thích h p trong t ng giao ti p cài đ t. B ng sau mô t các lo i ứ ợ ừ ế ặ ả ả ạ tag có các ph ng th c t ng ng đ x lý.ươ ứ ươ ứ ể ử