III. Tag handler được tri u g i nh th nào?ệ ọ ư ế
Giao ti p Tag đ nh ngh a m t qui ế ị ĩ ộ ước truy n thông c b n gi a ề ơ ả ữ tag handler và l p cài đ t trang JSP. Giao ti p này đ nh ngh a chu k s ng và cácớ ặ ế ị ĩ ỳ ố
ph ng th c đ c tri u g i khi g p ph i start tag và end tag c a m tươ ứ ượ ệ ọ ặ ả ủ ộ
action.
L p cài đ t trang JSP tri u g i các ph ng th c ớ ặ ệ ọ ươ ứ setPageContext,
setParent, và các ph ng th c cài đ t thu c tính tr c khi g i ph ng th cươ ứ ặ ộ ướ ọ ươ ứ
doStartTag. L p này c ng b o đ m r ng ph ng th c ớ ũ ả ả ằ ươ ứ release s đ c g iẽ ượ ọ
trong tag handler tr c khi k t thúc trang. Ví d sau th c hi n t ng b cướ ế ụ ự ệ ừ ướ
cách g i ọ tag handler.
Cách th c hi n ự ệ tag handler không có BodyContent
t.setPageContext(...); t.setParent(...); t.setAttribute1(value1); t.setAttribute2(value2); t.doStartTag(); t.doEndTag(); t.release();
Giao ti p BodyTag m r ng t giao ti p Tag b ng cách đ nh ngh a thêmế ở ộ ừ ế ằ ị ĩ
các ph ng th c cho phép ươ ứ tag handler truy c p vào thân c a nó. Giao ti p nàyậ ủ ế
cung c p ba ph ng th c m i:ấ ươ ứ ớ
setBodyContent: t o n i dung c a thân tag và thêm vào ạ ộ ủ tag handler.
doInitBody: đ c g i tr c khi đ nh tr thân c a ượ ọ ướ ị ị ủ tag.
DoAfterBody: đ c g i tr c khi đ nh tr thân c a ượ ọ ướ ị ị ủ tag.
Ví d :ụ
Cách th c hi n ự ệ tag handler có BodyContent
t.doStartTag();
out = pageContext.pushBody();
t.setBodyContent(out);
/* th c hi n các kh i t o c n thi t sau khi n i dung c a thân đ c gán */ự ệ ở ạ ầ ế ộ ủ ượ
t.doInitBody();
t.doAfterBody(); /**/
/* Khi doAfterBody tr v EVAL_BODY_TAG chúng ta l p l i ph nả ề ặ ạ ầ
đ nh tr cho thân tag */ị ị
...
t.doEndTag();
t.pageContext.popBody();
Chương III
JAVABEAN