J2EE自定义标签的详解
|
源代码网整理以下1,关于自定义标签的几个重要组成部分: 源代码网整理以下继承的类:javax.servlet.jsp.tagext.*:TagSupport 源代码网整理以下一个属性: protected PageContext pageContext 源代码网整理以下标签库描述文件 (*.tld) 源代码网整理以下2,流程(工具:eclipse): 源代码网整理以下1, 新建一个web project 源代码网整理以下2, 在项目下新建一个包,包里建类,继承TagSupport 源代码网整理以下3, 完成标签处理类 源代码网整理以下 软件开发网 www.mscto.com 源代码网整理以下import javax.servlet.jsp.JspException; 源代码网整理以下@SuppressWarnings("serial") 源代码网整理以下 private int pageSize;//pageSize属性,控制页面显示的个数,并且要生成get和set方法 源代码网整理以下 public int getPageSize() ...{ 源代码网整理以下 public void setPageSize(int pageSize) ...{ 源代码网整理以下// public int doEndTag() throws JspException { 源代码网整理以下 public int doStartTag() throws JspException ...{ 源代码网整理以下 JspWriter out = pageContext.getOut();//用pageContext获取out,他还能获取session等,基本上jsp的内置对象都能获取,非常有用 源代码网整理以下 源代码网整理以下 源代码网整理以下 源代码网整理以下 2. 标签处理类应该覆盖父类的至少一个方法 doStartTag() 或 doEndTag(),如果你覆盖是doStartTag()方法应该返回 SKIP_BODY, 如果你覆盖是doEndTag()方法应该返回 SKIP_PAGE,EVAL_PAGE 源代码网整理以下 3. 充分利用标签处理类的pageContext属性,可以通过该属性获取使用自定义标签的JSP页面的各种对象: 源代码网整理以下getOut(): 获取JSP页面的输出流 out 源代码网整理以下 getRequest: 获取JSP页面的请求对象 request 源代码网整理以下 getSession: 获取JSP页面的会话对象 session 源代码网整理以下 getServletContext: 获取JSP页面的应用对象 application 源代码网整理以下 源代码网整理以下4, 在WEB-INF下新建一个.tld文件完成标签库描述文件 软件开发网 www.mscto.com 源代码网整理以下 <type>Integer</type> </attribute> </tag> </taglib> 源代码网整理以下 1. 标签库描述文件必须以 tld 为 文件的后缀名 源代码网整理以下 2. 标签库描述文件应该遵守 xml 语法要求 源代码网整理以下 3. 标签库描述文件的根元素 必须是 <taglib> 源代码网整理以下 4. taglib根元素下必须完成以下四个子元素 源代码网整理以下tlib-version : jsp-version: short-name: 标签库描述文件的简要说明,且只能出现一次 源代码网整理以下tag: 能出现一到多次 , 描述标签库中的标签名及你要对应的标签处理类 源代码网整理以下5. tag元素下出现的子元素: 源代码网整理以下name子元素:标签名 软件开发网 www.mscto.com
源代码网整理以下tag-class子元素:对应的标签处理类 源代码网整理以下attribute子元素:该标签应包含的属性 源代码网整理以下 6. attribute元素下出现的子元素: 软件开发网 www.mscto.com 源代码网整理以下 name:属性名 源代码网整理以下required:该属性名可不可省略 软件开发网 www.mscto.com 源代码网整理以下type:标签处理类中相关属性的类型 源代码网整理以下5, 在web.xml引入标签库描述文件 源代码网整理以下 源代码网整理以下 源代码网整理以下<web-app version="2.4" </taglib> </jsp-config> </web-app> 源代码网整理以下 源代码网整理以下 1. 在web.xml中实现taglib元素的子元素: 源代码网整理以下taglib-location: 标签库描述文件在Web应用中的相对路径 源代码网整理以下<taglib-location>/WEB-INF/MyTagLib.tld</taglib-location> 软件开发网 www.mscto.com 源代码网整理以下taglib-uri:该标签库在JSP中用什么名字来调用 源代码网整理以下<taglib-uri>abc</taglib-uri> 源代码网整理以下2. 在要调用标签库的JSP中声明 软件开发网 www.mscto.com 源代码网整理以下声明:<%@ taglib uri="MyFirstTag" prefix="suibian" %> 源代码网整理以下调用:<suibian:showDataTag pageSize="10"></suibian:showDataTag> 源代码网推荐 源代码网供稿. |
