guokehua(@yahoo.com.cn oy Java 1010 06自定义标签 2008-3-10 郭克华EE框架实战教学视频
2008-3-10 1 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 06自定义标签
guokehua(@yahoo.com.cn 在JSP中自定义标签JSP和XML的完美结合 ·问题的提出:现在要显示所有学生的资料, 提出解决方案 ·传统方法 在JSP里面写JDBc查询 在 JavaBean中写JDBc查询,在JsP中 使用查询的结果 ·新的方法:能否使用一个标签(类似于 1Mm标签)联入到JsP文作叶,让它自 ·答案:能。技术基础:XML 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 2 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 在JSP中自定义标签——JSP和XML的完美结合 • 问题的提出:现在要显示所有学生的资料, 问题的提出:现在要显示所有学生的资料, 提出解决方案 • 传统方法: 在JSP里面写JDBC查询 在JavaBean JavaBean中写JDBC查询,在JSP中 使用查询的结果 使用查询的结果 • 新的方法:能否使用一个标签(类似于 新的方法:能否使用一个标签(类似于 html标签)嵌入到JSP文件中,让它自 文件中,让它自 动显示这些信息 动显示这些信息 • 答案:能。技术基础: 答案:能。技术基础:XML
guokehua(@yahoo.com.cn 丁个标签的引用 前缀 1010 标签名称「属性名称 属性值 至少需要让JSP文件做以下事情: 看到标签之后,执行相应的程序; 能够识别不同属性,知道不同属性的相应作用 不同属性赋不同的值,应该有不同的反映 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 3 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 标签名称 属性名称 一个标签的引用 一个标签的引用 • 前缀 属性值 •至少需要让JSP文件做以下事情: 文件做以下事情: 看到标签之后,执行相应的程序; 看到标签之后,执行相应的程序; 能够识别不同属性,知道不同属性的相应作用; 能够识别不同属性,知道不同属性的相应作用; 不同属性赋不同的值,应该有不同的反映 不同属性赋不同的值,应该有不同的反映
guokehua(@yahoo.com.cn 了标签种类 空标签,没有属性,也没有体 1010 空体标签,有属性,没有体 有属性有体标签: 008-3-10 郭克华J2E框架实战教学视频
2008-3-10 4 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 标签种类 • 空标签,没有属性,也没有体 • • • 空体标签,有属性,没有体 • • > • 有属性有体标签: • • •
guokehua(@yahoo.com.cn 了自定义标签的要素 凶标签处理程序(一个java文件,已经被编译) 使用不同的方法与对象来定义标签的行为,即认识 1010 某属性的不同值能做不同的事情 凶标签库描述符(TLD)文件(一个XM格式文件) 包含客户标签的描述性列表的XM件,即识别不 同的属性能做不同的事情 1JSP文件(为了嵌入自定义的标签) 包含标签以及表示内容的HTM代码 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 5 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 自定义标签的要素 自定义标签的要素 标签处理程序(一个 标签处理程序(一个java文件,已经被编译) 使用不同的方法与对象来定义标签的 使用不同的方法与对象来定义标签的行为,即认识 某属性的不同值能做不同的事情 某属性的不同值能做不同的事情 标签库描述符(TLD)文件(一个XML格式文件) 包含客户标签的描述性列表的 包含客户标签的描述性列表的XML文件,即识别不 文件,即识别不 同的属性能做不同的事情 同的属性能做不同的事情 JSP文件(为了嵌入自定义的标签 文件(为了嵌入自定义的标签) 包含标签以及表示内容的 包含标签以及表示内容的HTML代码
guokehua(@yahoo.com.cn 了标签处理程序(-个java文件) 作用:包含类和方法的定义,定义标签的功能 对于空体标签,需要继承: javax. servlet. jsp. tagext. Tag Support 1010 对于有体标签,需要继承: javax servlet. jsp. tagext Body tag Support 以上两个类都实现 Javax. servlet.jsp. tagext.Tag接囗 Tag接口中的方法: doStartTag(:初始化标签的一些內容,如连数据库 doEndTag(:作一些善后工作,如关数据库 release(:释放这个标签对象 doAfter Body0:完成标签体求值之后调用 doBeforeBody0:开始标签体求值之前调用 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 6 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 标签处理程序(一个 标签处理程序(一个java文件) • 作用:包含类和方法的定义 包含类和方法的定义,定义标签的功能 定义标签的功能 • 对于空体标签,需要继承: 对于空体标签,需要继承: javax.servlet servlet.jsp.tagext.TagSupport TagSupport • 对于有体标签,需要继承: 对于有体标签,需要继承: javax.servlet servlet.jsp.tagext.BodyTagSupport BodyTagSupport • 以上两个类都实现 以上两个类都实现 javax.servlet servlet.jsp.tagext.Tag接口 • Tag接口中的方法: 接口中的方法: – doStartTag doStartTag():初始化标签的一些内容,如连数据库 – doEndTag doEndTag():作一些善后工作,如关数据库 – release(): release():释放这个标签对象 – doAfterBody doAfterBody():完成标签体求值之后调用 – doBeforeBody doBeforeBody():开始标签体求值之前调用
guokehua(@yahoo.com.cn 了标签处理程序(一个jav文件) ·一般,无体标签 dostartTag0返回 SKIP BODY,让标签不要 对体求值, doEndTag0返回 EVAL PAGE,让标签后面的JsP 继续执行;有体标签 doStartTag0返回 EVAL B0 DY TAG,让 1010 标签对体求值, doEndTag0返回EVAL_PAGE,让标签后面的 JSP继续执行; ·对于标签里面的属性,类似于 Javabean中给它们编写get和 set方法 ·一般情况下的标签处理程序包含以下函数 构造函数:用于进行这个标签解释时的初始化,如联结数 据库 doStartTag(:返回对这个标签的处理方法 doEndTag o:作一些善后工作,如数据输出,关闭数据库等 各种属性的get,set函数 最厉害的角色: page context保护成员 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 7 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 标签处理程序(一个 标签处理程序(一个java文件) • 一般,无体标签doStartTag doStartTag()返回SKIP_BODY SKIP_BODY,让标签不要 对体求值,doEndTag doEndTag()返回EVAL_PAGE EVAL_PAGE,让标签后面的JSP 继续执行;有体标签doStartTag doStartTag()返回EVAL_BODY_TAG EVAL_BODY_TAG,让 标签对体求值,doEndTag doEndTag()返回EVAL_PAGE EVAL_PAGE,让标签后面的 JSP继续执行; • 对于标签里面的属性,类似于JavaBean JavaBean中给它们编写get和 set方法 • 一般情况下的标签处理程序包含以下函数: 构造函数:用于进行这个标签解释时的初始化,如联结数 据库 doStartTag doStartTag():返回对这个标签的处理方法 doEndTag doEndTag():作一些善后工作,如数据输出,关闭数据库等 各种属性的get,set get,set函数 • 最厉害的角色:pageContext pageContext保护成员
guokehua(@yahoo.com.cn 小标签库描述符(TLD)文件(一个XML文件) ·TLD文件: 1010 为包含标签库描述的XML文件 包含库中所有客户标签的列表与描述 可大致分类为二部分:: 第一部分包含TLD根标签或标签 的子-元素 tag ib标签内的第二部分包含标签元 素 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 8 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 标签库描述符(TLD)文件(一个XML文件) • TLD文件: – – 为包含标签库描述的 为包含标签库描述的XML文件 – – 包含库中所有客户标签的列表与描述 包含库中所有客户标签的列表与描述 – – 可大致分类为二部分: 可大致分类为二部分:: • 第一部分包含TLD 根标签或标签 的子-元素 • taglib标签内的第二部分包含 标签内的第二部分包含标签元 素
guokehua(@yahoo.com.cn 丁 标签库描述符(TLD)文件(一个XM文件) 基本: 010l0 1010 1.2 1. 1 StuTags 外界访问的UR名称 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 9 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 标签库描述符(TLD)文件(一个XML文件) 基本: 1.2 1.1 StuTags 外界访问的URI名称
guokehua(@yahoo.com.cn 勺标签库描述符(TLD)文件(一个XML文件) 标签名称 类路径 属性名称 是否必需 是否可以接受表达式 008-3-10 郭克华JEE框架实战教学视频
2008-3-10 10 J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 标签库描述符(TLD)文件(一个XML文件) 标签名称 类路径 属性名称 是否必需 是否可以接受表达式