欢迎来到天天文库
浏览记录
ID:39969255
大小:272.75 KB
页数:33页
时间:2019-07-16
《jstl-自定义标记x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JSP自定义标记自定义标记JSP自定义标记可以看成是对JSP标准动作标记的一种扩展。自定义标记是用户定义的以XML形式表示的JSP语言元素。自定义标记当一个包含自定义标记的JSP页面被转化为Servlet时,Web容器自动调用自定义标记对应的标记处理程序来处理JSP页面。自定义标记通过自定义标记,将一些重复性的、与特定应用相关的业务逻辑以文档化标记的形式进行调用,维护JSP以文档为中心的开发方式,最大程度地降低JSP页面的代码含量,提高JSP页面可维护性。自定义标记的表示和分类(1)标记名称。标记名称由两部分组成:前缀,用来区分不同标
2、记库,不同的标记库具有不同的前缀;后缀,用来区分统一标记库中的不同标记。前缀和后缀之间以冒号隔开。(2)属性。通过属性来动态控制标记的行为。(3)体内容:在标记的开始元素与结束元素之间的内容称为体内容。根据对体内容的不同行为,可以将自定义标记分为两种类型:(1)简单标记。不对体内容进行处理的标记。它必须继承接口javax.Servlet.jsp.tagext.TagSupport。(2)处理体内容的标记。对体内容(即对在开始和结束标记之间的内容)进行操作的标记,它必须继承接口javax.Servlet.jsp.tagext.BodyT
3、agSupport。注意:简单标记仍然可以有体内容,只不过它的标记处理程序不能读取体内容。自定义标记库的优点易于安装在多个项目上。良好的扩展性。容易维护。快速的开发时间自定义标记库组成1.标记处理器(实现自定义标签的Java类文件)2.标记库描述符(TLD文件)3.应用标记的JSP页面1.标记处理器创建自定义标记之前,需创建标记处理程序。标记处理程序:一个执行自定义标记操作的java对象。2、标记库描述符(TLD文件)标记库描述符是一个简单的xml文件,记录标记处理器的属性、信息和位置等信息。Web容器通过标记库描述符来得知从哪里及如
4、何调用一个标记库。标记库描述符文件必须以.tld为后缀,保存在WEB-INF目录中或它的子目录中。3、应用标记的JSP页面使用自定义标记时,导入标记库(一组标记/标记处理程序对的集合),通过在web部署描述符中声明标记库导入。使用指令taglib将标记库导入到jsp页面中。<%@tagliburi=“uri”prefix=“前缀”%>uri:引用唯一识别的TLD。prefix:定义区分不同标记库中标记的方法,避免不同标记库中标记重名引起的冲突。开发自定义标记的步骤(1)编写标记处理器。(2)编写自定义标记库的描述文件TLD(实际是一个
5、XML文件)。(3)编写应用标记的JSP页面。上述三个步骤之间没有顺序限制。(1)编写标记处理器。简单标记的标记处理器必须继承javax.Servlet.jsp.tagext.TagSupport接口方法作用intdoStartTag()throwsJSPException处理开始标记intdoEndTag()throwsJSPException处理结束标记TaggetParent()/voidsetParent(Tagt)获得/设置标记的父标记voidrelease()释放获得所有资源(2)编写自定义标记库的描述文件TLDTLD文件
6、列出了从标记名到标记处理程序的映射。大多数据在JSP页转换时使用。TLD文件通常保存在WEB-INF目录中,并在web.xml中声明。TLD文件的根元素是taglib。taglib描述一个标记库,即一组标记/标记处理程序对。标记描述文件中标记的意义属性意义tlib-version标记库版本jsp-versionJSP版本short-name标记库名称缩写,可选uri标记库文件URIdisplay-name标记库显示名称,可选small-icon显示小图标,可选large-icon显示大图标,可选discription描述信息,可选li
7、stener监听器tag标记描述属性名称描述name标记唯一名称tag-class标记处理程序类名body-content内容类型display-name可选的标记库显示名称attribute标记属性信息taglib元素包含许多tag元素,标记库中每个标记都有一个tag元素,tag元素用于将自定义标记映射到它们的自定义标记处理程序。标记的信息(3)编写应用标记的JSP页面。在jsp页面使用自定义标记,应用jsp的taglib标记指定其标记库(注意:taglib在使用此tag标记之前声明)。<%@tagliburi=“uri”prefi
8、x=“标识符”%>说明:uri:引用唯一识别的TLD。prefix:定义区分不同标记库中标记的方法,避免不同标记库中标记重名引起的冲突。(由于prefix区分不同标记库的,属性值可随意赋值)简单标记的处理过程(1)Web
此文档下载收益归作者所有